
Dies wurde möglicherweise bereits zuvor beantwortet, aber wenn ja, ist mein Google-Suchergebnis nicht stark genug, um es zu finden. Ich betreibe einen TightVNC-Server und möchte, dass mehrere Benutzer eine Verbindung damit herstellen. Ich habe festgestellt, dass dies mit älteren Runlevels mit init.d möglich ist, aber nicht mit systemd.
Ich habe versucht, einen Systemdienst mit Argumenten zu erstellen, um den Dienst für verschiedene Benutzer zu starten – anstatt ein benutzerspezifisches Skript zu haben, für dessen Ausführung der Benutzer verantwortlich ist, da ich die Ports und die Ausführung steuern möchte.
Ich habe mir Folgendes ausgedacht, aber die if-Anweisung funktioniert nicht. Gibt es eine Möglichkeit, einen einzelnen Dienst wie diesen einzurichten? Oder muss ich sie für jeden Benutzer duplizieren?
Danke.
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
if [ 1 == %i]; then
User = user1
Group = user1
WorkingDirectory=/home/user1
PIDFile = /home/user1/.vnc/%H:%i.pid
elif [2 == %i]; then
User = user2
Group = user2
WorkingDirectory=/home/user2
PIDFile = /home/user2/.vnc/%H:%i.pid
fi
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target