]> git.pld-linux.org Git - packages/tigervnc.git/blame - vncserver.init
- release 6 (by relup.sh)
[packages/tigervnc.git] / vncserver.init
CommitLineData
d76ad120
MK
1#!/bin/sh
2#
3# vncserver Starts/stop VNC server
4#
5# chkconfig: 345 91 35
6#
7# description: Starts and stops vncserver.
8# Used to provide remote X administration services.
9#
d76ad120
MK
10
11# Source function library
12. /etc/rc.d/init.d/functions
13
14# Get network config
15. /etc/sysconfig/network
16
17VNCSERVERS=""
18[ -f /etc/sysconfig/vncserver ] && . /etc/sysconfig/vncserver
19
20# Check that networking is up.
21if is_yes "${NETWORKING}"; then
22 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
23 msg_network_down vncserver
24 exit 1
25 fi
26else
27 exit 0
28fi
29
30start() {
31 # Check if the service is already running?
b09dcb23
ER
32 if [ -f /var/lock/subsys/vncserver ]; then
33 msg_already_running vncserver
34 return
35 fi
d76ad120 36
b09dcb23
ER
37 ulimit -S -c 0 >/dev/null 2>&1
38 RETVAL=0
d76ad120 39
b09dcb23
ER
40 if [ ! -d /tmp/.X11-unix ]; then
41 mkdir -m 1777 /tmp/.X11-unix || :
42 restorecon /tmp/.X11-unix 2>/dev/null || :
d76ad120 43 fi
b09dcb23
ER
44
45 NOSERV=1
46 for display in $VNCSERVERS; do
47 msg_starting "vncserver ($display)"
48 NOSERV=0
49 DISP="${display%%:*}"
50 USER="${display##*:}"
51 if [ "x$USER" == "xroot" ]; then
52 fail
53 echo "-- Do not run vncserver as root!"
54 continue
55 fi
56 VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
57 USEREXISTS=`cat /etc/passwd | awk -F: "{ if (\"$USER\"==\\\$1) print \"yes\" }"`
58 if [ "x$USEREXISTS" != "xyes" ]; then
59 fail
60 echo "-- User $USER does not exists!"
61 continue
62 fi
63 USERHOME=`runuser $USER -c 'echo $HOME'`
64 if [ ! -f "$USERHOME/.vnc/passwd" ]; then
65 fail
66 echo "-- No password file found for user $USER!"
67 continue
68 fi
69 export USER VNCUSERARGS
70 daemon --user ${USER} "vncserver :${DISP} ${VNCUSERARGS}"
71 RETVAL=$?
72 [ "$RETVAL" -eq 0 ] && echo $display >> /var/lock/subsys/vncserver
73 done
d76ad120
MK
74}
75
76stop() {
b09dcb23 77 if [ ! -f /var/lock/subsys/vncserver ]; then
d76ad120 78 msg_not_running vncserver
b09dcb23 79 return
d76ad120 80 fi
b09dcb23
ER
81
82 # Stop daemons.
83 ERRDISP=""
84 for display in `cat /var/lock/subsys/vncserver`
85 do
86 msg_stopping "vncserver ($display)"
87 export USER="${display##*:}"
88 runuser ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
89 RETVAL=$?
90 [ "$RETVAL" -eq 0 ] && ok && continue
91 fail
92 ERRDISP="$ERRDISP $display"
93 done
94 rm -f /var/lock/subsys/vncserver
95 [ "x$ERRDISP" != "x" ] && echo "$ERRDISP" > /var/lock/subsys/vncserver
d76ad120
MK
96}
97
98RETVAL=0
99# See how we were called.
100case "$1" in
101 start)
102 start
103 ;;
104 stop)
105 stop
106 ;;
107 restart)
108 stop
fd0af44a 109 sleep 5
d76ad120
MK
110 start
111 exit $?
112 ;;
113 status)
114 status Xvnc
115 RETVAL=$?
116 ;;
117 *)
118 msg_usage "$0 {start|stop|restart|status}"
119 exit 3
120esac
121
122exit $RETVAL
This page took 0.087769 seconds and 4 git commands to generate.