Команда для переліку служб, які починаються при запуску?


144

Чи є команда перелічити служби, які працюють при запуску? Я думаю, що це буде включати розбір /etc/init.d/та різні /etc/rc.*каталоги.

Відповіді:


104

Ви можете просто скористатися командою initctl listshell, щоб перелічити вміст, /etc/initа не запропоновану dbus-sendкоманду.


1
Чи працює це в Ubuntu 18.04? Я отримую "initctl: команда не знайдена" (in bash)
Санджай Манохар

121

Швидка відповідь: Це залежить від вашої initсистеми.

Довга відповідь: Для поточних версій Ubuntu, ймовірно, ви маєте суміш Upstart та SystemV . Новіші версії Ubuntu після 15.04 "Vivid Vervet" (та інші дистрибутиви Linux, такі як RHEL / CentOS 7) переходять до використання 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

service --status-allНЕ показує, чи ввімкнено послуги, які запускаються під час завантаження, принаймні, не на Ubuntu 16. Він показує, що служби запущені чи ні.
Wildcard

1
Мені довелося sudo service --status-allотримати всі послуги, щоб з’явитися. Кілька прихованих, коли я лише балотувався service --status-allна позакореневий обліковий запис.
Покірний

@Phlucious: Дякую, що згадуєте про це. Я припустив , що це було добре відомо , що ці команди зазвичай працюють як корінь ( systemctl, service, initctl...) , оскільки вони, як правило , вважаються команди системного адміністрування.
TrinitronX

13

/etc/init.dІ /etc/rc.*каталоги були замінені « upstart» INIT інструменту. Хоча сценарії в цих каталогах будуть виконані, як очікувалося, новий метод запуску речей в init визначається файлами в/etc/init/

Ви можете перелічити всі початкові завдання, за допомогою запиту upstart через dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Можливо, вам доведеться змінити, 0_6щоб відобразити наявну у вас версію. Ця команда працює на моїй чіткій установці.


3
@Eric H: Чи можете замість вас вказати правильну відповідь нижче - initctl listнабагато приємніше, ніж ця команда dbus. Я хотів би залишити цю відповідь тут для довідки (а не видаляти її повністю).
Джеремі Керр

12

Якщо ви хочете отримати гарне графічне зображення служб та часу, необхідного для завантаження, спробуйте:

apt-get install bootchart

11

Я використовую, initctl show-config <servicename>щоб дійсно отримати детальну інформацію про те, коли / якщо ваша служба почнеться під час завантаження.

Так:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

Або для NFS4 idmap-демон:

$ 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. пакети.ubuntu.com/…
AB

@AB дякую, що повідомили мені! Сьогодні рідкісні люди коментують: це вимагає сміливості і дозволяє мені вчитися. оновлено версією, в якій він працює.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件



0

Крім системних служб та сценаріїв під:

/etc/init.d/
/ lib / systemd / system /
/ тощо / 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.