Поиск по сайту:

Как изменить уровни выполнения (цели) в SystemD


Systemd — это современная система инициализации для Linux: система и менеджер служб, совместимый с популярной системой инициализации SysV и скриптами инициализации LSB. Она была предназначена для преодоления недостатков SysV init, как объясняется в следующей статье.

  1. История возникновения ‘init’ и ‘systemd’: почему ‘init’ пришлось заменить на ‘systemd’ в Linux

В системах, подобных Unix, таких как Linux, текущее рабочее состояние операционной системы известно как уровень запуска; оно определяет, какие системные службы запущены. В популярных системах инициализации, таких как SysV init, уровни запуска идентифицируются числами. Однако в systemd уровни запуска называются целями.

Рекомендуем к прочтению: Управление процессом запуска системы и службами (SysVinit, Systemd и Upstart)

В этой статье мы объясним, как изменить уровни запуска (цели) с помощью systemd. Прежде чем двигаться дальше, давайте кратко разберёмся с взаимосвязью между номерами уровней запуска и целей.

  • Уровень выполнения 0 соответствует poweroff.target (а runlevel0.target является символической ссылкой на poweroff.target).
  • Уровень выполнения 1 соответствует rescue.target (и runlevel1.target является символической ссылкой на rescue.target).
  • Уровень запуска 3 эмулируется multi-user.target (и runlevel3.target является символической ссылкой на multi-user.target).
  • Уровень запуска 5 эмулируется graphical.target (а runlevel5.target является символической ссылкой на graphical.target).
  • Уровень запуска 6 эмулируется reboot.target (и runlevel6.target является символической ссылкой на reboot.target).
  • Emergency соответствует emergency.target.

Как просмотреть текущую цель (уровень запуска) в Systemd

Когда система загружается, по умолчанию systemd активирует юнит default.target. Его основная задача — активировать службы и другие юниты, подтягивая их через зависимости.

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

#systemctl get-default 

graphical.target

Чтобы установить цель по умолчанию, выполните приведенную ниже команду.

# systemctl set-default multi-user.target  

Как изменить целевой уровень (runlevel) в Systemd

Пока система работает, вы можете переключить целевой уровень (уровень запуска), что означает, что теперь на системе будут работать только службы и единицы, определённые для этого уровня.

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

# systemctl isolate multi-user.target 

Чтобы изменить систему на уровень работы 5, введите команду ниже.

# systemctl isolate graphical.target

Для получения дополнительной информации о systemd ознакомьтесь с этими полезными статьями:

  1. Как управлять сервисами и юнитами ‘Systemd’ с помощью ‘Systemctl’ в Linux
  2. Как создать и запустить новые сервисные юниты в Systemd с помощью shell-скрипта
  3. Управление процессом запуска системы и службами (SysVinit, Systemd и Upstart)
  4. Управление журналами сообщений в Systemd с помощью Journalctl [Полное руководство]

В этом руководстве мы показали, как изменить уровни запуска (цели) с помощью systemd. Используйте форму комментариев ниже, чтобы прислать нам любые вопросы или мысли по поводу этой статьи.