systemctl --failedは、失敗したインスタンス化サービスを一覧表示しません。

systemctl --failedは、失敗したインスタンス化サービスを一覧表示しません。

同様のサービスのインスタンスを簡単に作成できるsystemdテンプレートを正常に作成および構成しました。

テンプレートは次のとおりです。

[Unit]
Description=my awesome service %I
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/binary -c /path/to/config/%i.conf
ExecStop=/usr/bin/pkill --full %i
Restart=on-failure
User=root
Group=root
TimeoutSec=30

[Install]
WantedBy=multi-user.target

systemcl の有効化 name@kkk, systemctl start name@kkk を使用してインスタンスをアクティブ化して起動しましたが、/path/to/config/kkk.conf ファイルが生成されなかったため、サービスが失敗しました。

~# systemctl status [email protected][email protected] - my awesome service  kkk
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: inactive (dead) (Result: exit-code) since Wed 2017-10-04 15:20:09 CEST; 3min 27s ago
  Process: 30116 ExecStop=/usr/bin/pkill --full %i (code=exited, status=1/FAILURE)
  Process: 30113 ExecStart=/usr/local/bin/binary -c /path/to/config/kkk.conf (code=exited, status=1/FA
 Main PID: 30113 (code=exited, status=1/FAILURE)

Oct 04 15:20:08 host systemd[1]: [email protected]: Unit entered failed state.
Oct 04 15:20:08 host systemd[1]: [email protected]: Failed with result 'exit-code'.
Oct 04 15:20:09 host systemd[1]: [email protected]: Service hold-off time over, scheduling restart.
Oct 04 15:20:09 host systemd[1]: Stopped my awesome service for kkk.

systemctl --failed を実行すると、次の結果が表示されます。

0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

サービスが失敗したため、これは明らかに間違っています。私は何か間違っているか、ここで何かを見逃していますか?ティア。

ベストアンサー1

これは、再起動に失敗したサービスが「失敗」ではなく「非アクティブ」と表示されるsystemdのバグです。私のテストでは、229(Ubuntu Xenialのデフォルト)として登場し、238に修正されました。一部の変更ログをスヌーピングすると、どのバージョンが変更されたかがわかります。

Restart最善の解決策は、サービスファイルから削除して手動で再起動するようです。

おすすめ記事