回答:
簡単な答えは、init
システムに依存します。
長い答えは次のとおりです。Ubuntuの現在のバージョンでは、おそらくUpstartとSystemVが混在しています。15.04 "Vivid Vervet"(およびRHEL / CentOS 7のような他のLinuxディストリビューション)以降のUbuntuの新しいバージョンはSystemDを使用するように移行しています。
すべてのサービスをリストするには:
initctl list
すべてのUpstartサービスを一覧表示して実行initctl show-config
するには、このワンライナーが役立つ場合があります。
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
すべてのサービスをリストするには:
service --status-all
または:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
すべてのサービスをリストするには:
systemctl list-unit-files --type=service
または:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
起動時にサービスが有効になっているかどうか、少なくともUbuntu 16では表示されません。サービスが現在実行されているかどうかが表示されます。
sudo service --status-all
得るためにすべて表示するサービスを。service --status-all
非ルートアカウントでのみ実行した場合、いくつかは非表示になりました。
systemctl
、service
、initctl
それらは通常、システム管理コマンドと考えられているとして...)。
ディレクトリは「取って代わられている」initのツール。これらのディレクトリ内のスクリプトは期待どおりに実行されますが、initで物事を実行する新しい方法は、/etc/init.d
/etc/rc.*
upstart
/etc/init/
dbusでupstartを照会することにより、すべてのupstartジョブをリストできます。
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
使用0_6
しているupstartのバージョンを反映するように変更する必要がある場合があります。このコマンドは、私の明快インストールで機能します。
initctl list
このdbusコマンドよりもはるかに優れています。ただし、完全に削除するのではなく、参照用にこの回答をここに残したいと思います。
Idを使用initctl show-config <servicename>
して、ブート中にサービスがいつ/いつ開始するかの詳細を取得します。
そのようです:
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
またはNFS4 idmap-daemonの場合:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
chkconfigは、RedHatベースのシステムでのみ推奨されます。
12.04では次を使用できます。
sudo apt-get install chkconfig
chkconfig --list
サンプル出力:
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
Ubuntu 18.04の場合:
systemctl list-units --type=service
の代わりに :
initctl
Ubuntu 16.04から、initctl
に置き換えられましたsystemd
。
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles(FR_fr)
(@ sanjay-manoharに役立つ場合)
gawkを使用する:
ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'
サンプル出力:
$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S