サービスが失敗すると、次の出力が表示されます。
Nov 06 10:23:55 irgprod2 systemd[1]: emsxsub.service: Unit entered failed state.
Nov 06 10:23:55 irgprod2 systemd[1]: emsxsub.service: Failed with result 'exit-code'.
Nov 06 10:23:58 irgprod2 systemd[1]: emsxsub.service: Service hold-off time over, scheduling restart.
Nov 06 10:23:58 irgprod2 systemd[1]: Stopped EMSX API Subscription.
何が間違っているのか、サービスが再起動されなかった理由についての説明はなく、「開始制限」についての言及もありません。プロセスは次のとおりです。
[Unit]
Description=EMSX API Subscription
After=multi-user.target
[Service]
Type=simple
Restart=always
RestartSec=3
User=root
Environment=PYTHONPATH=/k/svn_prod
Environment=LD_LIBRARY_PATH=/opt/lib
ExecStart=/usr/bin/python /k/svn_prod/com_wrappers/bbg_emsxsub.py
RemainAfterExit=no
[Install]
WantedBy=multi-user.target
RemainAfterExit引数なしでUser引数なしで試しました。 systemctl プロセスがアクティブで「service emsxsub restart」を実行すると、プロセスは正常に実行され、再起動されます。エラーが発生した場合にのみ、システムは再起動をスケジュールし、サービスを正常に再起動できない状態でサービスを停止します。この問題がある他の人が見つかりません。他の問題は「制限開始」エラーのようですが、ここではそうではありません。以前この問題を見た人はいますか?手動で再起動すると、すべてが正常に動作する理由を理解できませんが、サービスが失敗した場合、サービスは自動的に再起動されません。
これはJournalctl出力です。
Nov 06 10:23:55 irgprod2 python[18451]: Traceback (most recent call last):
Nov 06 10:23:55 irgprod2 python[18451]: File "/k/svn_prod/com_wrappers/bbg_emsxsub.py", line 533, in <module>
Nov 06 10:23:55 irgprod2 python[18451]: main()
Nov 06 10:23:55 irgprod2 python[18451]: File "/k/svn_prod/com_wrappers/bbg_emsxsub.py", line 505, in main
Nov 06 10:23:55 irgprod2 python[18451]: raise RuntimeError() # raise error so process restarts
Nov 06 10:23:55 irgprod2 python[18451]: RuntimeError
Nov 06 10:23:55 irgprod2 systemd[1]: emsxsub.service: Main process exited, code=exited, status=1/FAILURE
Nov 06 10:23:55 irgprod2 systemd[1]: emsxsub.service: Unit entered failed state.
Nov 06 10:23:55 irgprod2 systemd[1]: emsxsub.service: Failed with result 'exit-code'.
Nov 06 10:23:58 irgprod2 systemd[1]: emsxsub.service: Service hold-off time over, scheduling restart.
Nov 06 10:23:58 irgprod2 systemd[1]: Stopped EMSX API Subscription.
出力systemctl status emsxsub.service
:
* emsxsub.service - EMSX API Subscription
Loaded: loaded (/lib/systemd/system/emsxsub.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Wed 2018-11-07 08:18:49 EST; 40s ago
Process: 3936 ExecStart=/usr/bin/python /k/svn_prod/com_wrappers/bbg_emsxsub.py (code=exited, status=1/FAILURE)
Main PID: 3936 (code=exited, status=1/FAILURE)
Nov 07 08:18:45 irgprod2 systemd[1]: emsxsub.service: Unit entered failed state.
Nov 07 08:18:45 irgprod2 systemd[1]: emsxsub.service: Failed with result 'exit-code'.
Nov 07 08:18:49 irgprod2 systemd[1]: emsxsub.service: Service hold-off time over, scheduling restart.
Nov 07 08:18:49 irgprod2 systemd[1]: Stopped EMSX API Subscription.
出力systemctl show emsxsub.service | grep -i restart
:
[trading@irgprod2 ~]$ systemctl show emsxsub.service | grep -i restart
Restart=always
RestartUSec=3s
システム制御バージョン:
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN
リリースの詳細:
[trading@irgprod2 ~]$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
答え1
削除するとAfter=multi-user.target
問題が解決しました。循環依存性に対するフィリペの観察は正しいようです。