Systemd
以機器可讀格式列出 Systemd 目標單元的依賴項
我有一個複雜的 systemd 目標單元,其中包含許多依賴單元。我想列出並解析這些狀態,而不會退回到循環中。
’list-dependencies’ 子命令僅以(彩色,未以純 unicode 複製)點的形式給出狀態,這不是很好解析。
> systemctl list-dependencies --no-page myunit.target dcache.target ● ├─mytemplate@unit_foo.service ● ├─mytemplate@unit_bar.service ● ├─mytemplate@unit_baz.service ...
–no-page 標誌似乎沒有任何影響,並且無論有無輸出都保持不變。
或者,
systemctl list-dependencies --plain myunit.target
僅列出依賴項但不列出其目前狀態
有沒有辦法從’systemctl list-dependencies’生成輸出,可以解析或者是JSON或類似的?
Systemd 不支持任何開箱即用的 json api。檢查下面的討論:https ://github.com/systemd/systemd/issues/83 。在這裡獲得機器可讀輸出的唯一方法是 –plain 版本,您提到了它並且工作得很好。您可以使用 systemctl 獲得的狀態資訊是活動的。所以你需要做一些腳本來得到你想要的。對於您的具體問題,您可以使用:
systemctl list-dependencies --plain nginx | xargs -I {} sh -c 'echo -n {}": "; systemctl is-active {};'