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 사용자의 서비스 실행 문제를 해결하는 방법을 찾으려고 노력하고 있습니다. 하지만 이제는 "있는 그대로" 실행합니다.