引数なしで実行すると、systemctl
システムの各デバイスの状態を示すクールなテーブルが出力されます。
$ systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION
console-setup.service loaded active exited Set console font and keymap
cron.service loaded active running Regular background program processing daemon
dbus.service loaded active running D-Bus System Message Bus
myapp-component1.service loaded active running Application - Component 1
● myapp-component2.service loaded active failed Application - Component 2
[...]
dbus.socket loaded active running D-Bus System Message Bus Socket
myapp-socket1.socket loaded active listening Application - a socket
[...]
fstrim.timer loaded active waiting Discard unused blocks once a week
myapp-periodic.timer loaded active waiting Application - periodic job
[...]
私のアプリケーションは、systemdによって調整された一連のサービス(タイマー、ソケットなど)で構成されています。アプリケーションの各サブコンポーネントに対して、ユニット名は「myapp-」で始まります。systemctl
私のアプリケーションコンポーネントの状態を一目で観察するために使用したいと思います。
systemctl
名前がパターンに一致するデバイス(たとえば)のみをリストするように要求する方法はありますか'myapp-*'
?
$ systemctl <some-option-asking-for 'myapp-*`>
UNIT LOAD ACTIVE SUB DESCRIPTION
myapp-component1.service loaded active running Application - Component 1
● myapp-component2.service loaded active failed Application - Component 2
myapp-socket1.socket loaded active listening Application - a socket
myapp-periodic.timer loaded active waiting Application - periodic job
ノートsystemctl
:結果セットを直接フィルタリングする方法に興味があります。column -t
出力全体のGreppingと再フォーマット(例:via)systemctl
には避けたい極端なケースがあります。
答え1
systemctl
'd 基本コマンドは次のとおりです。list-units
、オプションの引数としてパターンが必要なので、
systemctl list-units 'myapp-*'
やりたいことをします。
systemctl
たとえば、多くのコマンドがパターンをサポートしています。
systemctl status 'myapp-*'
「myapp-」で始まるすべてのデバイスのステータスが表示されます。