Как узнать, какой диспетчер служб установлен в моей ОС Linux?
Я знаю, что моя установка 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
2 ответа
Самый простой способ - определить, какая ОС работает, и посмотреть, что она запускает по умолчанию. Системы 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 наряду с более современными, но у меня нет систем, использующих только это для проверки. Если вы пишете сценарий инициализации для неизвестной системы, это, как правило, безопасная ставка, хотя вы теряете блестящие вещи, которые добавляют новые системы инициализации.
В дистрибутивах Linux на базе Debian:
$ dpkg -S $(which init)
systemd-sysv: /sbin/init
В дистрибутивах Linux на базе Redhat:
$ rpm -qf $(which init)
upstart-0.6.5-16.el6.x86_64
быть законченным...