Логотип

Как узнать, что ваша система Linux работает на Systemd

Как узнать, что ваша система Linux работает на Systemd

Systemd — это широко используемый программный пакет для Linux, который также содержит init (также известный как «инициализация») — первый процесс, запускаемый при загрузке системы Linux.

Это мощная программа, которая предлагает множество готовых функций и возможностей, что делает ее «мусорным ПО». Те, кому она не нравится, предпочитают использовать другие системы Linux с другими инициализаторами.

Вот несколько примеров: OpenRC initSysVinitUpstart и т. д. Поскольку существует несколько вариантов init, на рынке представлены различные дистрибутивы Linux с разными вариантами init.

Интересно, что в популярных дистрибутивах Linux, таких как Debian, Ubuntu, RedHat, Fedora, AlmaLinux, Arch, Manjaro и openSUSE, по умолчанию используется systemd.

Но опять же, существует множество дистрибутивов без systemd, таких как Void Linux и Devuan, в которых используются runit (легкая система инициализации) и sysvinit.

Если вас не интересует какой-то конкретный дистрибутив Linux с определенным инициализатором, то, возможно, вам не стоит беспокоиться о том, на чем работает ваша система, до тех пор, пока вам не понадобится выполнить определенную команду, например systemctl, которая должна работать только в дистрибутивах Linux на основе systemd.

Читать  Как автоматически перезапустить вышедшую из строя службу в Linux

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

 

Как проверить, работает ли ваша система Linux на Systemd

Изначально первым был оригинальный init-процесс Linux, известный как «init». Позже, когда на рынке появились различные варианты init-процессов, каждый из них был связан с оригинальным init-процессом с помощью символических ссылок.

Чтобы получить общее представление, выполните следующую команду, которая выведет список первого процесса, то есть вашего init-процесса.

ps 1

 

Выходной сигнал:

PID TTY STAT TIME COMMAND

1       ?      Ss        0:02 /sbin/init auto noprompt splash

 

Если вы посмотрите на приведенный выше вывод, то заметите, что первым процессом является /sbin/init, что сбивает с толку многих пользователей Linux, заставляя их думать, что их система Linux работает на init, хотя это не так.

/sbin/init — это символическая ссылка на реальный процесс init в большинстве современных систем Linux, который можно найти, пройдя по символической ссылке с помощью одной из двух следующих команд: команда stat и команда readlink.

Итак, давайте с помощью первой команды определим, на каком init-процессе работает ваша система Linux.

 

Способ 1. Узнайте, какая система Linux работает на Systemd, с помощью команды stat

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

stat /sbin/init

 

Читать  Как вывести список сервисов в Ubuntu

Выходной сигнал:

 

Если ваша система Linux работает на базе systemd, будет выведено /lib/systemd/systemd. В противном случае, если используется другая система инициализации, будут выведены ее названия, например /sbin/init (для SysVinit) или /usr/bin/openrc-init (для OpenRC init).

 

Команда readlink работает так же, как и предыдущая, за исключением того, что вместо вывода нескольких элементов она выводит только содержимое символической ссылки, на которую указывает, благодаря чему вывод получается понятным и простым для восприятия.

Чтобы узнать, используете ли вы Systemd, просто выполните следующую команду:

readlink /sbin/init

 

Выходной сигнал:

/lib/systemd/systemd  <---------------------------Running on systemd

Приведенный выше вывод указывает на то, что текущая система работает на базе systemd.

 

Дополнительные советы!

Есть несколько дополнительных способов определить, какая система инициализации запущена в вашей системе. Например, можно использовать саму команду ps. Просто выполните любую из следующих команд, и она покажет, какая система инициализации используется в данный момент.

ps -p 1

 

или

ps --no-headers -o comm 1

 

Выходной сигнал:

ps -p 1
PID TTY    TIME        CMD
    1   TTY   00:00:02 systend
ps --no-headers -o comm 1
systemd

 

Принцип работы этой команды довольно прост: она ищет процесс с PID 1, то есть процесс инициализации, и получает название команды. В выводе обычно указывается, какая система инициализации используется.

Читать  Менеджер входа в систему KDE Plasma не будет поддерживать системы Linux или BSD без Systemd

Кроме того, вы можете использовать команду ls для определения своей системы инициализации. Например, если выполнить следующую команду, она выведет систему инициализации.

ls -l /sbin/init

 

Выходной сигнал:

lrwxrwxrwx 1 root root 20 Sep 19 22:27 /sbin/init -> /lib/systemd/systemd   <------------------- Running on systemd

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала