作为我以前的一篇文章,我正在使用 systemd 在 Ubuntu 18.04 上运行 GMod 服务器。我的 systemd 脚本如下所示:
[Unit]
Description=Gmod Server
After=network.target
[Service]
User=rooday # the user I normally run run_gmod.sh with
ExecStart=/datadrive/srcds/run_gmod.sh
Restart=Always
[Install]
WantedBy=multi-user.target
并且它可以很好地运行我的服务器,但问题是它systemctl status
没有journalctl
显示服务器二进制文件的实际日志。
这是因为run_gmod.sh
运行srcds_run
脚本(源码安装)以及我的服务器的参数(哪种游戏模式、哪种地图等)。srcds_run
获取这些参数并设置一些环境变量,然后运行实际的服务器二进制文件(以及在崩溃后重新启动服务器二进制文件、更新服务器等的一些逻辑)。
srcds_run
有很多逻辑,所以我不想绕过它直接运行二进制文件(除非对 srcds 服务器更有经验的人认为这是一个更好的选择),我宁愿只显示systemctl
服务器journalctl
二进制文件的日志。我尝试使用Type=forking
,但运行时systemctl restart gmod
会挂起,所以我不确定这是否是正确的选择。有人知道如何获取正确的日志systemctl
/更好的运行服务器的方法吗?