終了コード127のため、システム起動スクリプトが失敗しました。

終了コード127のため、システム起動スクリプトが失敗しました。

Terraria サーバー Debian をセットアップしようとしていますが、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の原因(つまり、システムのどの部分が見つからないか)を調べる方法はありますか?

完全なシステムスクリプトは次のとおりです。

[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のバグのようです。問題を解決してシステムを強制的に更新しますapt install systemd

答え2

ユーザーを変更してみてください。

電話しようとするとエラーが発生します。

terrariad exit

端末で入場時にパスワードを尋ねる

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

それで、「terraria.service」と「terrariad」でユーザーを変更したところ、うまくいきました。メインユーザーにサービスを実行するのは理想的ではありませんが、私にとってはただの楽しみのためです。

私はまだTerrariaユーザーのサービス実行の問題を解決する方法を見つけようとしています。しかし、今は「現状のまま」実行します。

関連情報