![需要帮助创建非 root systemd 服务](https://linux22.com/image/1208543/%E9%9C%80%E8%A6%81%E5%B8%AE%E5%8A%A9%E5%88%9B%E5%BB%BA%E9%9D%9E%20root%20systemd%20%E6%9C%8D%E5%8A%A1.png)
我正在使用 ubuntu 22,目前有一个名为“steam”的用户和组
当我想运行我的 cs2 服务器时,我首先切换到 steam 用户:
su steam
然后我运行以下命令:
cs2-server @public1 start
上述命令不能以 root 用户身份运行,并会引发错误,提示以 root 用户身份运行存在安全风险,因此我必须创建一个可由 steam 用户访问的 systemd 服务。
cs2-server 的路径是 /usr/local/bin/cs2-server 。
当我从 steam 用户运行启动命令时,我也没有收到输入密码的提示,我认为我创建的服务也一定不会要求输入密码。
这是我创建 systemd 服务的方法,但没有成功:
[Unit]
Description=public 1 run
After=network.target
[Service]
User=steam
Group=steam
ExecStart=/usr/local/bin/cs2-server @public1 start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
我该如何实现我的愿望?
答案1
我通过添加以下内容使其工作:
类型=分叉
总体来说,服务文件如下所示:
[Unit]
Description=public 1 run
After=network.target
[Service]
User=steam
Group=steam
Type=forking
ExecStart=/usr/local/bin/cs2-server @public1 start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target