需要帮助创建非 root systemd 服务

需要帮助创建非 root systemd 服务

我正在使用 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

相关内容