Как узнать, какой диспетчер служб установлен в моей ОС Linux?

954
hebbo

Я знаю, что моя установка Linux идет с одной из реализаций менеджера сервисов. Это может быть либо Systemd, Upstart, либо любой другой.

Итак, мой вопрос: как я могу узнать, какой из них установлен в моей системе Linux?

Благодарю.

ОБНОВИТЬ

Вот некоторые команды ps / grep из моей системы, которые ищут systemd и upstart, и их результаты:

$ ps aux | grep systemd root 341 0.0 0.0 52244 3836 ? Ss 15:54 0:00 /lib/systemd/systemd-udevd --daemon root 588 0.0 0.0 43452 3200 ? Ss 15:54 0:00 /lib/systemd/systemd-logind root 1889 0.0 0.0 17520 1840 ? S 15:54 0:00 /lib/systemd/systemd-localed user123 2348 0.0 0.0 15948 2236 pts/1 S+ 15:56 0:00 grep --color=auto systemd $ ps aux | grep upstart root 329 0.0 0.0 19744 2308 ? S 15:54 0:00 upstart-udev-bridge --daemon root 763 0.0 0.0 15808 2168 ? S 15:54 0:00 upstart-file-bridge --daemon root 770 0.0 0.0 15528 1984 ? S 15:54 0:00 upstart-socket-bridge --daemon user123 1525 0.0 0.0 22304 2336 ? Ss 15:54 0:00 upstart-event-bridge user123 1553 0.0 0.0 22368 1828 ? S 15:54 0:00 upstart-dbus-bridge --daemon --session --user --bus-name session user123 1560 0.0 0.0 30784 280 ? S 15:54 0:00 upstart-file-bridge --daemon --user user123 1562 0.0 0.0 22312 216 ? S 15:54 0:00 upstart-dbus-bridge --daemon --system --user --bus-name system user123 2350 0.0 0.0 15948 2280 pts/1 S+ 15:56 0:00 grep --color=auto upstart 
1
Ищете или просто пытаетесь соответствующие команды? Кроме того, обычно существует стандарт для данного дистрибутива. Где и как вы посмотрите, зависит от дистрибутива. Seth 7 лет назад 1
1. дай мне пример. Например, в вашем собственном дистрибутиве Linux. 2. есть ли «подпись» или может быть записано в журнал сообщение, которое может дать подсказку? Проблема в том, что я совсем не знаком с этими сервис-менеджерами. Я только что узнал об их существовании сегодня. Таким образом, любая подсказка поможет .... на самом деле. hebbo 7 лет назад 0
[Как сервисы в Debian работают и как я могу ими управлять?] (Http://unix.stackexchange.com/questions/106656/how-do-services-in-debian-work-and-how-can-i -manage-them) есть пример для каждой из названных вами альтернатив. Хотя [Debian действительно изменился] (https://www.debian.org/News/2015/20150426) по умолчанию. Seth 7 лет назад 1
Это дубликат [Определить систему инициализации с помощью оболочки] (http://unix.stackexchange.com/questions/18209/detect-init-system-using-the-shell). Mark Stosberg 7 лет назад 1

1 ответ на вопрос

3
Journeyman Geek

Самый простой способ - определить, какая ОС работает, и посмотреть, что она запускает по умолчанию. Системы init не тривиальны для изменения.

В совершенно неизвестной системе я бы предложил использовать сочетание ps и grep, чтобы проверить общие процессы, связанные с каждой системой инициализации, и посмотреть ..

У меня нет системы, которая использует «классическую» систему сценариев инициализации, поэтому у меня нет возможности проверить.

На современной Fedora или Ubuntu Box - вы можете использовать ps aux | grep systemd, который должен излучать строки, как usr/lib/systemd/systemd. Он также хранит файлы конфигурации вetc/systemd/

Вы бы также использовали systemctl для обработки сервисов

В системе, основанной на выскочке, вы можете ps aux | grep upstartнайти и найти несколько процессов, связанных с выскочкой.

Upstart использует команду service и сохраняет файлы конфигурации в / etc / init /, как классический файл инициализации. Он использует свой собственный формат, сохраненный в виде файлов .conf, хотя некоторые из них являются классическими файлами инициализации.

Вы часто используете сценарии инициализации в стиле sysv наряду с более современными, но у меня нет систем, использующих только это для проверки. Если вы пишете сценарий инициализации для неизвестной системы, это, как правило, безопасная ставка, хотя вы теряете блестящие вещи, которые добавляют новые системы инициализации.

Также есть ссылка на ответ в комментарии МаркСтосберга по этому вопросу. hebbo 7 лет назад 0

Похожие вопросы