]> git.pld-linux.org Git - packages/tigervnc.git/blame - vncserver-service-generator
- disable parallel build, it doesn't quite qork here
[packages/tigervnc.git] / vncserver-service-generator
CommitLineData
9f5ab5d2
JR
1#!/bin/sh
2
3destunitdir=${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
8VNCSERVERS=""
9[ -f /etc/sysconfig/vncserver ] && . /etc/sysconfig/vncserver
10
11if [ -d $destunitdir/vncserver.target.wants ]; then
12 rm -f $destunitdir/vncserver.target.wants/vncserver@*.service
13else
14 mkdir -p $destunitdir/vncserver.target.wants
15fi
16
17for 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]
36Description=Remote desktop service (VNC) on display %i
37Requires=vncserver.target
38After=vncserver.target
39PropagateReloadFrom=vncserver.target
40
41[Service]
42Type=simple
43ExecStart=/sbin/runuser -l $USER -c "/usr/bin/vncserver -fg :%i $VNCUSERARGS"
44ExecStop=/sbin/runuser -l $USER -c "/usr/bin/vncserver -kill :%i"
45
46[Install]
47WantedBy=vncserver.target
48EOF
49done
This page took 0.285008 seconds and 4 git commands to generate.