
この問題Q:「systemctlで有効になっているすべてのサービスをどのように一覧表示しますか?」このページの答えは次のとおりです。
systemctl list-unit-files | grep enabled
systemctl list-unit-files --state=enabled
少なくともsystemdバージョン229(Ubuntu 16.04)以降、systemctl list-unit-files
レガシー初期化スクリプトを介して開始された「LSB」サービスは含まれません。
したがって、元の質問に対する答えはまだ残っているようです。 systemdは、レガシーサービスを含む起動時に起動しようとするすべてのサービス(および他のデバイスタイプ)のリストを表示できますか?
考慮する:
$ systemctl list-units | grep LSB | grep grub
grub-common.service loaded active exited LSB: Record successful boot for GRUB
$ systemctl list-unit-files | grep enabled | grep grub || echo 'nothing found'
nothing found
$ systemctl is-enabled grub-common
grub-common.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install is-enabled grub-common
enabled
systemctl
grub-common
明示的に要求するとsystemctl
有効になったというメッセージが表示されることを理解してください。
それでは、レガシースクリプトを含む起動時に実行しようとするすべてのサービスのリストを表示するようにsystemdを取得する方法はありますか?
答え1
私はあなたが望むコマンドが次のようになると思います。
systemctl list-units --type service --all
私のテストでは、以前のスタートアップサービスのサービスを含むすべてのサービスがリストされています。
源泉:
答え2
何が欲しいのか信じています
systemctl list-unit-files --type service --state enabled
インストールされているデバイスファイルを一覧表示するために使用されますlist-unit-files
(現在のメモリ内のファイルだけでなく)。マニュアルページのいくつかの関連セクション:
list-units [PATTERN...] List units currently in memory
list-unit-files [PATTERN...] List installed unit files
is-enabled UNIT... Check whether unit files are enabled
-t --type=TYPE List units of a particular type
--state=STATE List units with particular LOAD or SUB or ACTIVE state
-a --all Show all properties/all units currently in memory,
including dead/empty ones. To list all units installed
on the system, use 'list-unit-files' instead.
以前のバージョンのsystemdでこれは本当ではありません:
本当に古いシステムバージョンでは、「systemctl list-unit-files」はデフォルトのユニットファイルのみを表示します。最新バージョンでは、見つけやすくするために作成されたユニットファイルも表示されます。
生成されたすべてのサービスをis-enabled
。一部は return enabled
、一部は return disabled
、一部は 3 番目の状態 " generated
" (すべて) を返します。私はこれについてよくわかりません。
systemctl is-enabled $(systemctl list-unit-files --type service --state generated | awk '/.*\.service/ {print $1}' | tr '\n' ' ') |& grep "^\w*$" | sort | uniq -c | sort -rn