这个问题可能之前已经回答过了,但如果已经回答过了,那我的 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