Systemd

systemd 輸出中的“status=10/n/a”是什麼意思?

  • March 27, 2020

我正在開發一個.service文件,以便systemd可以在 Amazon Linux 2 上將應用程序作為服務進行管理。但是當我鍵入 時systemctl start my-new-service,日誌中會報告以下錯誤:

Mar 24 hh:mm:ss the.host.name systemd[1]: my-new-service.service: main process exited, code=exited, status=10/n/a  

status=10/n/a此錯誤消息中指的是 什麼?

請解釋如何解釋各種可能的狀態程式碼,如果摘要對於這個論壇來說太長,也許可以提供一個完整解釋的連結。

該消息表示您的.service文件啟動的應用程序ExecStart=已退出,並在退出時將返回碼設置為 10。

結果程式碼沒有單一的統一標準(儘管有幾個部分標準和約定),因此找出程式碼 10 含義的唯一方法是閱讀該特定應用程序的文件……或其原始碼,如果文件沒有指定它。

所以 systemd 不知道程式碼 10 是什麼意思,所以它添加了 n/a 表示 systemd 沒有可用的口頭描述。您還沒有告訴我們有問題的應用程序是什麼,因此我們無法為您進一步查找結果程式碼 10。

在 的文件中systemd有幾個結果程式碼約定表。總結一下:

  • C 庫基本上只定義 0 表示 OK 和 1(或任何非零值)表示失敗
  • Linux 標準庫 (LSB) 定義了程式碼 2…7,用於設計用作服務的事物(或最初用於 SysVinit 樣式的服務啟動腳本)
  • LSB 規范建議程式碼 200 及更高版本將是特定於實現的,因此systemd在該範圍內定義了一組程式碼,用於systemd自身生成的錯誤。
  • BSD 作業系統在 64..78 範圍內定義了一組通用的退出程式碼。/usr/include/sysexits.h如果系統上已經安裝了 C 開發包,這些程式碼的定義通常在 Linux 系統上也可用,在 file中。

但是這些都沒有說明程式碼 10,因此在不了解相關應用程序的情況下無法進行猜測。

引用自:https://unix.stackexchange.com/questions/574726