失敗したシステムサービスの終了コードを取得するには?
service some_service status
以下を印刷してください。
Active: failed (Result: exit-code)
しかし、それは何ですかexit-code
?
これらの終了コードは標準ですか、それともサービスごとに異なる意味を持ちますか?
答え1
systemctl status
実際にあなたが探しているものがあります:
$ systemctl status openproject-web-1.service
● openproject-web-1.service
Loaded: loaded (/etc/systemd/system/openproject-web-1.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2020-05-25 08:17:17 CEST; 1 day 4h ago
Process: 969 ExecStart=/usr/bin/openproject run web (code=exited, status=203/EXEC)
Main PID: 969 (code=exited, status=203/EXEC)
Main PID:
あなたは以下に何を持っているのか見ることができます(code=exited, status=203/EXEC)
。 203は終了コードである。
終了コードは特定のアプリケーションによって異なりますが、いくつかの規則があります。 0 は正常終了を示し、1-255 は異常終了を示し、256+ は範囲外であることを示します。これPOSIX規格いくつかの特別な状況があります。ただし、詳細については、アプリケーションのマニュアルを確認する必要があります。
例えば、grep(1)
説明する:
...終了状態は、行が選択されている場合は0、行が選択されていない場合は1、エラーが発生した場合は2です。
以下のJdePBで説明されているように、systemdは200から242の範囲のいくつかの終了コードを設定できます。上記の例には、203
実際の実行が失敗したことを意味する終了コードがあります(ファイルが見つからないか、ファイルが実行可能ファイルとして表示されていない可能性があります)。