どうすればsystemctl
からenabled
なサービスをすべてリストアップできますか?
systemctlコマンドを単独で実行すると全てのサービスがリストアップされることは知っていますが、
enabled`なものだけを取得したいのです。
systemctl list-unit-files | grep enabled` は、すべての enabled をリストアップします。
もし、現在実行されているものを知りたければ、systemctl | grep running
が必要です。
あなたが探しているものを使ってください。 有効になっていても、動いているとは限りません。 また、動作しているからといって、有効になっているとは限りません。 この2つは別物です。
有効」とは、次回の起動時にシステムがサービスを実行することを意味します。 つまり、サービスを有効にしても、手動で起動するか、再起動すれば起動する必要があります。
Running」とは、今実際に実行されていることを意味しますが、「Enabled」になっていない場合は、再起動しても再起動しません。
man systemctl
の状態です。
ステート=`
コンマで区切られたユニットの状態(LOAD, SUB, ACTIVE)のリストを指定します。ユニットをリストアップする際には、指定した状態のものだけを表示します。失敗したユニットだけを表示するには、--state=failed
を使用してください。
説明を参照してください。
LOAD
です。ユニット定義が正しくロードされたかどうかを反映します。
ACTIVE:SUB
を一般化したもので、高レベルのユニットの起動状態を表す。
SUB:SUB
: 低レベルのユニット活性化状態で、値はユニットタイプに依存する。
これを使って enabled
のユニットだけを表示することもできますが。
systemctl list-unit-files --state=enabled
ユニットが enabled
であれば、システムは起動時にそのユニットを開始します。ただし、enabled
に設定しても実際にはstart
にはなりませんので、手動で設定するか、enabled
に設定した後にシステムを再起動する必要があります。
状態=activeかつ
sub=runningであるすべての
systemd`サービスをリストアップします。
systemctl list-units --type=service --state=running
状態=activeで、サブが実行中または終了しているすべての
systemd`サービスをリストアップします。
systemctl list-units --type=service --state=active
有効になっているサービスを確認するには、以下のように実行します。 サービスを表示するには、これらのサービスを含めて、まだ起動/init実行中であることを確認してください。
systemctl list-unit-files --type service --state enabled,generated
現在実行中のサービスをすべて表示するには
systemctl list-units --type service --state running