systemd 服务的个性化实例

systemd 服务的个性化实例

我有四个 VNC 服务器实例,在 Debian Buster 计算机上运行,​​供四个不同的用户使用。

感谢 Apache Guacamole,用户可以通过网络浏览器从远程计算机同时登录各自的帐户。

每个 VNC 实例都有自己的单元文件。它们看起来像这样:

[Unit]
Description=a wrapper to launch an X server for VNC
After=syslog.target network.target

[Service]
Type=forking
User=user2
Group=user2
WorkingDirectory=/home/user2

ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -rfbport 5902 -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

请注意,用户、用户的主目录和 VNC 服务器的端口已明确指定。他们需要匹配鳄梨酱的用户映射文件中的数据:

    <connection name="User1">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5902</param>       
        <param name="password">user2's vnc password</param>                  
    </connection>
</authorize

我有一个在启动时运行的非常简单的脚本,每次只启动一个 VNC 实例。

所以这对我有用,只是我觉得这不太优雅。有没有更好的方法让 systemd 支持多用户?什么会是[电子邮件受保护]模板文件可能看起来可以处理用户名和端口号?

相关内容