추가 읽기

추가 읽기

다음 launcher.sh 파일이 있습니다.

cd /root/craig/mybot
tmux new-session -d -s mybot "'/usr/bin/python3.5' launcher.py --start --auto-restart"

그런 다음 /systemd/system에 다음 mybot.service 파일이 있습니다.

[Unit]
After=network.target

[Service]
ExecStart=/root/craig/mybot/launcher.sh

[Install]
WantedBy=default.target

실행하면 잘 작동 /root/craig/mybot/launcher.sh하지만 서버를 다시 시작하면 서비스가 시작되고 launcher.sh가 시작되지 않는 것 같습니다(봇이 온라인 상태가 되지 않기 때문입니다). 왜 이런거야? 서비스가 활성화된 것으로 나타납니다. 저는 CentOS 7을 사용하고 있습니다.

내가 실행하면 systemctrl status mybot다음을 얻습니다.

May 25 03:48:56 vultr.guest systemd[1]: Starting mybot.service...
May 25 03:48:56 vultr.guest systemd[818]: Failed at step EXEC spawning /root/craig/mybot/launcher.sh: Exec format error
May 25 03:48:56 vultr.guest systemd[1]: mybot.service: control process exited, code=exited status=203
May 25 03:48:56 vultr.guest systemd[1]: Failed to start mybot.service.
May 25 03:48:56 vultr.guest systemd[1]: Unit mybot.service entered failed state.
May 25 03:48:56 vultr.guest systemd[1]: mybot.service failed.

답변1

다음 launcher.sh 파일이 있습니다.

[…]

May 25 03:48:56 vultr.guest systemd[818]: Failed at step EXEC spawning /root/craig/mybot/launcher.sh: Exec format error

systemd는 쉘 인터프리터가 아닙니다. 프로그램을 프로그램 이미지 파일로 직접 실행할 수 없는 경우 인터프리터 자체로 돌아가는 것을 포함하여 셸이 수행하는 작업을 수행하지 않습니다.

/root/craig/mybot/launcher.sh시스템 호출에 의해 프로그램 이미지 파일로 사용될 수 있는 유효한 실행 파일이 아닙니다 execve(). 이를 위해서는 #!파일의 처음 2바이트에 있는 문자로 표시되는 매직 넘버와 그 뒤에 파일의 나머지 부분을 해석할 인터프리터의 경로 이름이 있어야 합니다 .

추가 읽기

관련 정보