Как определить, что дистрибутив Linux - это systemd или sysV init, без установки или загрузки?

Вероятно, это не так часто, как представлено, но обычно случается, когда что-то внутренне неформальное требует гораздо более общего привилегированного системного вызова для достижения своего результата, например:

  • Отключите и унесите USB-накопитель. umount - серьезная команда, так как с ее помощью можно размонтировать множество вещей.
  • Подключитесь к локальной беспроводной сети. Ничего особенного, но конфигурация сети ( ifup и т. Д.) Предназначена только для суперпользователя.
  • Самообновляющиеся приложения, которые отказываются запускаться, если не обновляются. Update = install, и это может установить много чего, включая то, что вам не нужно.

Системы обычно развиваются, чтобы уменьшить количество таких случаев. USB-накопители теперь могут монтироваться пользователем, а сети могут быть подключены пользователем. Но так было не всегда.

1
12.03.2019, 08:25
2 ответа

На distrowatch.com вы можете искать дистрибутивы, используя систему инициализации в качестве критерия. Вы даже можете выбрать «не systemd».

5
27.01.2020, 23:12

Проверьте наличие характерных файлов конфигурации и инструментов администрирования каждой системы инициализации.

Если /etc/inittabне существует, то система инициализации точно не SysVinit. Если он существует, но имеет только одну строку комментария, отличного от -, и в комментариях говорится, что «это используется только для указания уровня запуска по умолчанию, больше ничего не будет иметь никакого эффекта», система инициализации может быть upstart.

Если /etc/init/является каталогом, то в конфигурации системы по крайней мере предусмотрена возможность использования upstart.

Если такие каталоги, как /usr/lib/systemd/system, /lib/systemd/systemи/или /etc/systemd/system, существуют, в системе есть как минимум файлы конфигурации для systemd.

Если initctl listот имени пользователя root выводит список процессов, контролируемых системой инициализации, upstartопределенно используется.

Если systemctl statusотображает список запущенных системных служб (, вам даже не нужно быть пользователем root, чтобы запустить его! ), systemdопределенно используется.

Если /etc/inittabсуществует, но ни initctl list, ни systemctl statusне работают, это похоже на SysVinit.

Если /etc/inittabсуществует и имеет эту строку inittab is no longer used when using systemd., то это только systemd.

3
27.01.2020, 23:12

Теги

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