
Возможно, на этот вопрос уже отвечали, но если так, то мой google foo недостаточно силен, чтобы его найти. Я использую сервер TightVNC и хочу, чтобы к нему подключалось несколько пользователей. Я нашел возможность сделать это с помощью устаревших уровней запуска с init.d, но не с systemd.
Я пытаюсь создать системную службу с аргументами для запуска службы для разных пользователей — вместо того, чтобы иметь пользовательский скрипт, за выполнение которого они отвечают, поскольку я хочу контролировать порты и выполнение.
Я придумал ниже, однако оператор if не работает. Есть ли способ, чтобы у меня была одна служба, как эта? Или мне нужно дублировать их для каждого пользователя?
Спасибо.
[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