web-dev-qa-db-ja.com

systemctlからすべての有効なサービスを一覧表示する方法は?

enabledのすべてのsystemctlサービスを一覧表示するにはどうすればよいですか?

systemctlコマンドを単独で実行すると、すべてのサービスが一覧表示されますが、enabledサービスのみを取得したいと思います。

258
oceanBT

systemctl list-unit-files | grep enabledは、すべてのenabledをリストします。

どれが現在実行中であるかを知りたい場合は、systemctl | grep runningが必要です。

お探しのものを使用してください。有効になっていますが、実行されているわけではありません。実行しているからといって、有効になっているわけではありません。それらは2つの異なるものです。

有効にすると、システムは次回の起動時にサービスを実行します。そのため、サービスを有効にした場合でも、手動でサービスを開始するか、再起動して開始する必要があります。

実行とは、実際に実行中であることを意味しますが、有効になっていない場合、再起動しても再起動しません。

389
Dorian

man systemctl状態:

--state=

引数は、ユニットLOADSUB、またはACTIVE状態のコンマ区切りリストでなければなりません。ユニットをリストする場合、指定された状態のユニットのみを表示します。失敗したユニットのみを表示するには、--state=failedを使用します。

説明:

LOAD:ユニット定義が適切にロードされたかどうかを反映します。
ACTIVE:高レベルのユニットのアクティベーション状態、つまりSUBの一般化。
SUB:ユニットの低レベルのアクティベーション状態。値はユニットのタイプに依存します。

ただし、これを使用してenabledユニットのみを表示することもできます。

systemctl list-unit-files --state=enabled

ユニットがenabledの場合、システムは起動時にユニットを起動します。何かをenabledに設定しても実際にはstartにならないので、手動で行うか、enabledに設定した後にシステムを再起動する必要があります。

87
user364819

state=activeおよびsub=runningにあるすべてのsystemdサービスをリストするには

systemctl list-units --type=service --state=running

state=activeにあり、実行中または終了したsubにあるすべてのsystemd sericeをリストするには

systemctl list-units --type=service --state=active
62

まだupstart/initの下にあるこれらを含む「有効な」サービスを表示するには、次を実行します。

systemctl list-unit-files --type service --state enabled,generated

現在実行中のサービスをすべて表示するには、次を実行します。

systemctl list-units --type service --state running
10
nix-power