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

解決策は次のとおりです。

サービスファイルを次のように変更すると問題が解決しました。

  • GroupRestartおよび行を追加すると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

関連情報