web-dev-qa-db-ja.com

systemctlは、レガシーサービスを含むすべての有効なサービスをリストできますか?

この質問 質問:「systemctlからすべての有効なサービスを一覧表示する方法?」そのページの回答は次のとおりです。

systemctl list-unit-files | grep enabled
systemctl list-unit-files --state=enabled

少なくともsystemdバージョン229(Ubuntu 16.04)では、systemctl list-unit-filesには、レガシーinitスクリプトを介して起動される「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

systemctlgrub-commonを知っており、明示的に尋ねるとsystemctlはそれが有効であることを通知します。

それで... systemdに、レガシースクリプトを含め、起動時に実行しようとするすべてのサービスのリストを表示させる方法はありますか?

6
mpb

あなたが望むコマンドは次のとおりです:

systemctl list-units --type service --all

これは私のテストの結果であり、レガシーブートサービスのサービスも含めてすべてのサービスをリストしています。

ソース:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-services

3
George Udosen