]> git.pld-linux.org Git - packages/tigervnc.git/blob - vncserver-service-generator
- release 2 (by relup.sh)
[packages/tigervnc.git] / vncserver-service-generator
1 #!/bin/sh
2
3 destunitdir=${1:-/tmp}
4
5 # Do nothing if vncserver target is disabled
6 [ -e /etc/systemd/system/multi-user.target.wants/vncserver.target ] || exit 0
7
8 VNCSERVERS=""
9 [ -f /etc/sysconfig/vncserver ] && . /etc/sysconfig/vncserver
10
11 if [ -d $destunitdir/vncserver.target.wants ]; then
12         rm -f $destunitdir/vncserver.target.wants/vncserver@*.service
13 else
14         mkdir -p $destunitdir/vncserver.target.wants
15 fi
16
17 for display in $VNCSERVERS; do
18         DISP="${display%%:*}"
19         USER="${display##*:}"
20         if [ "x$USER" == "xroot" ]; then
21                 echo "-- Do not run vncserver as root!"
22                 continue
23         fi
24         VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
25         if [ ! id $USER >/dev/null 2>&1 ]; then
26                 echo "-- User $USER does not exists!"
27                 continue
28         fi
29         USERHOME=$(eval "echo ~$USER")
30         if [ ! -f "$USERHOME/.vnc/passwd" ]; then
31                 echo "-- No password file found for user $USER!"
32                 continue
33         fi
34         cat >$destunitdir/vncserver.target.wants/vncserver@$DISP.service <<EOF
35 [Unit]
36 Description=Remote desktop service (VNC) on display %i
37 Requires=vncserver.target
38 After=vncserver.target
39 PropagateReloadFrom=vncserver.target
40
41 [Service]
42 Type=simple
43 ExecStart=/sbin/runuser -l $USER -c "/usr/bin/vncserver -fg :%i $VNCUSERARGS"
44 ExecStop=/sbin/runuser -l $USER -c "/usr/bin/vncserver -kill :%i"
45
46 [Install]
47 WantedBy=vncserver.target
48 EOF
49 done
This page took 1.275569 seconds and 3 git commands to generate.