RHEL 서비스는 수동으로 시작하면 작동하지만 다시 시작이 활성화되면 자동으로 시작되지 않습니다. (메인 프로세스가 종료되었습니다. 코드=종료, 상태=126/n/a)

RHEL 서비스는 수동으로 시작하면 작동하지만 다시 시작이 활성화되면 자동으로 시작되지 않습니다. (메인 프로세스가 종료되었습니다. 코드=종료, 상태=126/n/a)

서버가 (다시) 시작될 때 쉘 스크립트를 시작하기 위해 Linux 서비스를 만들었습니다. 내 서버를 테스트하는 동안 서비스를 수동으로 시작하면 시작할 수 있지만 "systemctl"을 사용하여 활성화하면 시작하지 못하는 것을 발견했습니다. 원인은 무엇입니까?

내 로그:

systemctl 상태 스크립트.서비스

 script.service - name
   Loaded: loaded (/etc/systemd/system/scriptname.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2024-03-04 15:39:34 CET; 3min 45s ago
  Process: 1303 ExecStart=/usr/local/bin/scriptname.sh (code=exited, status=126)
 Main PID: 1303 (code=exited, status=126)

Mar 04 15:39:34 sar systemd[1]: Started ######.
Mar 04 15:39:34 sar systemd[1]: scriptname.service: main process exited, code=exited, status=126/n/a
Mar 04 15:39:34 sar systemd[1]: Unit scriptname.service entered failed state.
Mar 04 15:39:34 sar systemd[1]: scriptname.service failed.

Journalctl -u 서비스 이름.service tail -n 50 |

-- Reboot --
Mar 04 15:39:34 sar systemd[1]: Started #####.
Mar 04 15:39:34 sar systemd[1]: scriptname.service: main process exited, code=exited, status=126/n/a
Mar 04 15:39:34 sar systemd[1]: Unit scriptname.service entered failed state.
Mar 04 15:39:34 sar systemd[1]: scriptname.service failed.

답변1

해결책은 다음과 같습니다.

서비스 파일을 다음과 같이 변경하면 문제가 해결되었습니다.

  • Group, Restart및 줄을 추가하면 WantedBy정상적으로 시작됩니다.
  • 그룹 ID를 자신의 사용자 ID로 변경하세요.
vi /etc/systemd/system/servicename.service
[Unit]
Description= app description
After=network.target
Wants=network-online.target      #(optional)

[Service]
Type=simple
User=t9s1takuser
Group=208816585
ExecStart=/usr/local/bin/myscript.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

관련 정보