/etc/init.d/XXスクリプトから発生する「サービス」があり、systemd wrapper が生成されます。どのランレベルでも自動起動しません。systemctl --all
またはsystemctl list-unit-files --all
を実行しても、どのリストにも表示されません。
私の直感は、依存関係がなく、起動されていないため、systemdに「ロード」されていない(つまり、有効化されていない、ロードされていない)ため、systemdはそれをリストしません。
まだ開始されておらず、自動開始されていないものも含めて、可能なすべてのサービスのfullリストを取得する方法はありますか?または、systemctl search
と同等のものを使用しますか?
これに関連する question は、ブート時に試行されるサービスのリストを要求するだけです。
「--all」の下にあるman
のsystemctl
page は、
システムにインストールされているすべてのユニットを一覧表示するには、代わりにlist-unit-filesコマンドを使用します
ただし、これらの無効なユニットはlist-unit-files
の出力には表示されません。
「私は「systemdの人」と尋ねましたが、古いバージョンでは、manページに次のように書かれているにもかかわらず、すべてがリストされているわけではない、と彼らは言っています。
-a, --all
When listing units, show all loaded units, regardless of their
state, including inactive units. When showing unit/job/manager
properties, show all properties regardless whether they are set or
not.
To list all units installed on the system, use the list-unit-files
command instead.
上記の機能のほとんどは、「my」systemdバージョンsystemd 219
(CentOS 6)では実際には発生しないようです。しかし、バージョンsystemd 232
のDebian 9のsystemctlの新しいバージョンでは修正されているようです。おそらくそれが理由です。
Init.dスクリプトdoesを指定すれば、古いsystemd
バージョンで通常(ステータス、開始、停止)のようにそれらを制御できます。ランレベルですが、すべての/etc/rc?.d
dirs(la chkconfig --del my_service
またはそれに相当するsystemctl disable my_service
、またはchkconfig
が最初に実行されなかった場合)には存在しません。次に、systemd-sysv-generator
systemdの古いバージョンでは、正常に動作していても制御可能であるにもかかわらず、systemctl list-units --all
などを実行しても[リストに表示されます] [2]ません。または、それらが通常のサービスであるが無効になっている場合、まだ機能しているにもかかわらず、どのリストにも表示されないようです。
ref: https://lists.freedesktop.org/archives/systemd-devel/2019-May/042555.html
これらのコマンドをrootとして実行していますか? list-unit-filesコマンドはまさにあなたが探しているものだと思います。ロードされたサービスのリストだけでなく、ユニットファイルもリストされます。サービスの構成方法に関する問題を検討していると思います。
ダミーサービスを作成することから始めて、それが登録されていることを確認してください。実際には何もしない何か。次に、それが機能すると、機能していないサービスとの違いを確認できます。または、サービスユニットファイルを、動作している単純なサービスの1つと比較します。