6

Как я могу узнать, начинается ли мой linux с systemd или каким-либо другим пакетом?

2 ответа2

12

Проверьте, какой процесс выполняется как PID 1. Вы можете сделать это, запустив ps aux | less и прокручиваем наверх. Если у вас есть какой-то systemd, работающий под PID 1, значит, systemd запущен.

Или запустите systemctl чтобы просмотреть список работающих модулей systemd.

Вы также можете проверить, что такое /sbin /init; file /sbin/init сообщит вам, является ли он настоящим исполняемым файлом или символической ссылкой на исполняемый файл какого-либо другого пакета. Например, в окне systemd:

root@boxy / # file /sbin/init
/sbin/init: symbolic link to ../lib/systemd/systemd

Для получения дополнительной информации, проверьте это: https://en.wikipedia.org/wiki/Linux_startup_process

РЕДАКТИРОВАТЬ: Как отмечено в комментарии Deltab, а не с помощью ps aux | less , ps 1 - лучший способ сделать это. Спасибо за разъяснение этого!

РЕДАКТИРОВАТЬ 2: Еще один способ увидеть, что именно у вас есть в вашей системе, - это набрать man init и посмотреть, на какой странице man программы вы находитесь.

5

Я знаю, что это старый вопрос, но так как я просто задавал себе тот же вопрос - вот мой 2ct.

Лучшее решение, которое я придумал

ps --no-headers -o comm 1

Это возвращает либо systemd либо init и кажется надежным во всех дистрибутивах и выпусках Linux.

file /sbin/init будет работать с помощью сопоставления с шаблоном. Вывод ps 1 не выглядит полезным, поскольку в некоторых дистрибутивах Linux он печатает 'init' (символическая ссылка), несмотря на использование systemd.

Debian 8

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:02 /sbin/init
$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd

РЕЛ 7

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     7:46 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../lib/systemd/systemd'

SLES 12

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../usr/lib/systemd/systemd'

openSUSE 13.1

$ ps 1
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:33 /sbin/init showopts
$ /sbin/init: symbolic link to `../usr/lib/systemd/systemd'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .