Systemd 启动脚本失败,退出代码为 127

Systemd 启动脚本失败,退出代码为 127

我正在尝试设置一个 Terraria 服务器 Debian,但我一直坚持让它与 systemd 很好地配合工作。我从中获取了一个 systemd 脚本这里但当我尝试启动它时,我只得到这个:

$ sudo systemctl start terraria
Job for terraria.service failed because the control process exited with error code.
See "systemctl status terraria.service" and "journalctl -xe" for details.

$ sudo systemctl status terraria
● terraria.service - server daemon for terraria
   Loaded: loaded (/etc/systemd/system/terraria.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2019-10-25 20:23:27 CEST; 7s ago
  Process: 3606 ExecStart=/usr/bin/screen -dmS terraria /bin/bash -c /home/terraria/server/TerrariaServer.bin.x86_64 -config /home/terraria/server/serverconfig.txt (code=exited, status=127)
 Main PID: 3342 (code=exited, status=127)

Oct 25 20:23:27 systemd[1]: Starting server daemon for terraria...
Oct 25 20:23:27 systemd[1]: terraria.service: Control process exited, code=exited status=127
Oct 25 20:23:27 systemd[1]: Failed to start server daemon for terraria.
Oct 25 20:23:27 systemd[1]: terraria.service: Unit entered failed state.
Oct 25 20:23:27 systemd[1]: terraria.service: Failed with result 'exit-code'.

有什么办法让我找出实际导致退出代码 127 的原因(即系统找不到哪一部分)?

这是完整的 systemd 脚本:

[Unit]
Description=server daemon for terraria

[Service]
Type=forking
User=terraria
KillMode=none
ExecStart=/usr/bin/screen -dmS terraria /bin/bash -c "/home/terraria/server/TerrariaServer.bin.x86_64 -config /home/terraria/server/serverconfig.txt"
ExecStop=/usr/local/bin/terrariad exit

[Install]
WantedBy=multi-user.target

所有路径实际上都存在,当我尝试手动执行 ExecStart 行时,它会按预期工作(在屏幕环境中启动 Terraria 服务器)。

答案1

看起来这是一个 Systemd bug。通过解决它强制更新系统apt install systemd

答案2

尝试更改用户。

当我尝试致电时发现一个错误

terrariad exit

在终端上,进入时要求输入密码

su - terraria -c "$cmd"(line 13)

所以我更改了“terraria.service”和“terrariad”中的用户,并且它有效。在主要用户上运行该服务并不理想,但对我来说只是为了好玩。

我仍在尝试找出如何解决在泰拉瑞亚用户上运行服务的问题。但现在我“按原样”运行。

相关内容