You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vncserver.service 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. #
  3. # Init file for TigerVNC Server
  4. #
  5. # chkconfig: - 91 35
  6. # description: TigerVNC remote X administration daemon.
  7. #
  8. # processname: Xvnc
  9. ### BEGIN INIT INFO
  10. # Provides: vncservers
  11. # Required-Start: networking
  12. # Required-Stop: networking
  13. # Default-Start:
  14. # Default-Stop: 0 1 2 3 4 5 6
  15. # Short-Description: Starts and stops vncserver
  16. # Description: Used to provide remote X administration services.
  17. ### END INIT INFO
  18. # Source function library.
  19. . /lib/lsb/init-functions
  20. ### Default variables
  21. SYSCONFIG="/etc/default/vncservers"
  22. VNCSERVERS=""
  23. ### Read configuration
  24. [ -r "$SYSCONFIG" ] && . "$SYSCONFIG"
  25. RETVAL=0
  26. prog=$"VNC server"
  27. start() {
  28. echo -n $"Starting $prog: "
  29. ulimit -S -c 0 >/dev/null 2>&1
  30. for display in ${VNCSERVERS}; do
  31. echo -n "${display} "
  32. if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then
  33. unset BASH_ENV ENV
  34. log_begin_msg "Starting VNC Server for user ${display##*:}:"
  35. su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}"
  36. RETVAL="$?"
  37. if [ "$RETVAL" -ne 0 ]; then
  38. log_end_msg 1
  39. break
  40. else
  41. log_end_msg 0
  42. fi
  43. else
  44. log_begin_msg "Not starting VNC Server for user ${display##*:}.\n File \"~${display##*:}/.vnc/passwd\" not found.\n Create a password file for the VNC server with vncpasswd"
  45. log_end_msg 1
  46. fi
  47. done
  48. echo
  49. [ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver"
  50. return $RETVAL
  51. }
  52. stop() {
  53. echo -n $"Shutting down $desc: "
  54. for display in ${VNCSERVERS}; do
  55. echo -n "${display} "
  56. unset BASH_ENV ENV
  57. log_begin_msg "Shutting down VNC Server for user ${display##*:}: "
  58. su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
  59. RETVAL="$?"
  60. [ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1
  61. done
  62. echo
  63. [ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver"
  64. return $RETVAL
  65. }
  66. restart() {
  67. stop
  68. start
  69. }
  70. case "$1" in
  71. start)
  72. start
  73. ;;
  74. stop)
  75. stop
  76. ;;
  77. restart|reload)
  78. restart
  79. ;;
  80. *)
  81. echo $"Usage: $0 {start|stop|restart}"
  82. RETVAL=1
  83. esac
  84. exit $RETVAL