Как проверить, какая система инициализации ядра стоит на сервере?

Здравствуйте, у меня такой вопрос возник , как определить какая система инициализации стоит на сервере linux? Есть ли какая то команда чтобы показать это? Я конечно понимаю что сейчас последние дистрибутивы поставляются с systemd на борту, но все же хотелось бы как то наглядно это увидеть, так как в моей системе нету такой утилитки как systemctl, значит в ней не systemd стоит?
  • Вопрос задан
  • 5493 просмотра
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
Не знаю как для других но для Арча и Убунту можно использовать команду init --version :

$ uname -n
arch
$ init --version | head -n1
systemd 230


$ uname -n
ubuntu
$ init --version | head -n1
init (upstart 1.12.1)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
kalterfive
@kalterfive
Посмотреть куда указывает /sbin/init (это симлинк).
Ответ написан
Комментировать
Проверить какая система инициализации на Linux можно множеством путей, как правила все они зависят от версии Linux дистрибутива и не все работают 100% на всех дистрибутивах, первоначально проверяем

ls -l `which init`

если покажет симлин вида

lrwxrwxrwx 1 root root 20 фев 15  2017 /sbin/init -> /lib/systemd/systemd


то тут все понятно - systemd

если симлинка нет, то команда

strings /sbin/init | awk 'match($0, /(upstart|systemd|sysvinit)/) { print toupper(substr($0, RSTART, RLENGTH));exit; }'


выдаст либо SYSTEMD либо UPSTART либо SYSVINIT
Ответ написан
Комментировать
@greenh
Собственно, если нет systemctl, то гарантированно нет systemd. Любая попытка обращения к systemctl все покажет
Ответ написан
Комментировать
в Дебиане такого нет, но можно делать man init и там сверху написано, что systemd
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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