起動時に開始するサービスを一覧表示するコマンド?


144

起動時に実行されるサービスを一覧表示するコマンドはありますか?解析/etc/init.d/とさまざまな/etc/rc.*ディレクトリが関係すると思います。

回答:


104

提案されたコマンドinitctl list/etc/initはなく、シェルコマンドを使用して単純に内容をリストできdbus-sendます。


2
これはUbuntu 18.04で機能しますか?「initctl:コマンドが見つかりません」(bashで)が表示されます
Sanjay Manohar

121

簡単な答えは、initシステムに依存します。

長い答えは次のとおりです。Ubuntuの現在のバージョンでは、おそらくUpstartSystemVが混在しています。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

システムV

すべてのサービスをリストするには:

service --status-all

または:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

すべてのサービスをリストするには:

systemctl list-unit-files --type=service

または:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

9
これは受け入れられた答えであるはずです。
sjas 16

service --status-all起動時にサービスが有効になっているかどうか、少なくともUbuntu 16では表示されません。サービスが現在実行されているかどうかが表示されます。
ワイルドカード

1
私がしなければならなかったsudo service --status-all得るためにすべて表示するサービスを。service --status-all非ルートアカウントでのみ実行した場合、いくつかは非表示になりました。
恐ろしい

@Phlucious:それについて言及してくれてありがとう。私はそれがうまくこれらのコマンドは、通常、(rootとして実行されていることが知られていたと仮定systemctlserviceinitctlそれらは通常、システム管理コマンドと考えられているとして...)。
TrinitronX

13

ディレクトリは「取って代わられている」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のバージョンを反映するように変更する必要がある場合があります。このコマンドは、私の明快インストールで機能します。


3
@Eric H:以下の答えを代わりに正しいものに設定してもらえますか?initctl listこのdbusコマンドよりもはるかに優れています。ただし、完全に削除するのではなく、参照用にこの回答をここに残したいと思います。
ジェレミーカー

12

サービスと起動にかかる時間をわかりやすくグラフィカルに表示するには、次を試してください。

apt-get install bootchart

11

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ベースのシステムでのみ推奨されます。


1
これは正解です。間違った答えや不完全な答えがどれほど高く支持されているのか、私にはわかりません。
セリン

1
これはSysVを使用している人々にとって最もうまくいきます。これは良い答えに同意しますが、不完全です。
ガブリエルネット

9

12.04では次を使用できます。

sudo apt-get install chkconfig
chkconfig --list

しかし、それは12.10削除されました

サンプル出力:

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

2
Ubuntuでは機能しません。packages.ubuntu.com/…–
AB

@AB教えてくれてありがとう!ダウンボッターが最近コメントすることはまれです。勇気が必要で、学ぶことができます。それはで動作するバージョンで更新。
チロSantilliは新疆改造中心法轮功六四事件



0

以下のシステムサービスとスクリプトに加えて:

/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /

おそらくAutoStartアプリケーションもあります。たとえば:

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"

-2

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.