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ユーザーのサービス実行の問題を解決する方法を見つけようとしています。しかし、今は「現状のまま」実行します。