Рассмотрим типы unit-файлов:

  • служба (.service)
  • целевое состояние (.target)
  • путь (.path)
  • таймер (.timer)
  • монтирование (.mount) /автомонтирование (.automount)
  • устройство (.device)
  • подкачка (.swap)

Заводские unit-файлы находятся в /lib/systemd/system, кастомизированные — в /etc/systemd/system. Информацию по unit-файлам можно посмотреть командам:
man systemd.unit
man systemd.service

Управление службами systemd

  • systemctl status <имя службы>.service — посмотреть статус службы
  • systemctl enable <имя службы>.service — добавить службу в автозагрузку
  • systemctl disable <имя службы>.service — удалить службу из автозагрузки
  • systemctl start <имя службы>.service — запустить службу
  • systemctl stop <имя службы>.service — остановить службу
  • systemctl restart <имя службы>.service — перезапустить службу
  • systemctl reload <имя службы>.service — перечитать конфигурационный файл службы

 

  • systemctl mask <имя службы>.service — замаскировать службу — делает невозможным запуск службы, даже если это требуется другой службой
  • systemctl unmask <имя службы>.service — снять маскировку — сделать возможным запуск службы (файл юнита восстанавливается)
  • systemctl reenable <имя службы>.service — выполнить disable, затем enable
  • systemctl is-active <имя службы>.service — проверить, запущена ли служба
  • systemctl list-unit-files —type=service — вывести список всех конфигурационных файлов службы<имя службы>.service — посмотреть статус службы

Целевые состояния systemd

  • multi-user.target — многопользовательский режим без графического интерфейса
  • graphical.target — многопользовательский режим с графическим интерфейсом
  • rescue.target — однопользовательский режим (режим восстановления). Для работы в этом режиме у root должен быть задан пароль.
  • reboot.target — перезагрузка системы
  • halth.target — остановка системы
  1. Команда управления целевыми состояниями systemd:
    • systemctl isolate имя.target — переключение на другое целевое состояние;
    • systemctl get-default —force имя.target — изменить цель по умолчанию.
    • systemctl set-default — получить информацию о текущей цели по умолчанию
  2. В systemd реализована совместимость с уровнями выполнения (runlevel) SysV Init: для каждого стандартного целевого состояния  существует символическая ссылка вида runleveleN.target — где — уровень выполнения.
  3. В частности, использую номер уровня выполнения, при запуске ядра можно попросить ядро запустить systemd с указанным целевым состоянием, соответствующим уровню выполнению.
  4. Уровни выполнения (runlevel) и соответствующие им целевые состояния systemd:
    • 0 — halth.target;
    • 1, s, single — rescue.target;
    • 2, 3 — multi-user.target;
    • 5 — graphical.target;
    • 6 — reboot.target.
    sa@astra:~$ systemctl cat ssh.service
    # /lib/systemd/system/ssh.service
    [Unit]
    Description=OpenBSD Secure Shell server
    Documentation=man:sshd(8) man:sshd_config(5)
    After=network.target auditd.service
    ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
    [Service]
    EnvironmentFile=-/etc/default/ssh
    ExecStartPre=/usr/sbin/sshd -t
    ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
    ExecReload=/usr/sbin/sshd -t
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    RestartPreventExitStatus=255
    Type=notify
    RuntimeDirectory=sshd
    RuntimeDirectoryMode=0755
    [Install]
    WantedBy=multi-user.target
    Alias=sshd.service

Просмотр и редактирование юнитов

  • systemctl — активные юниты
  • systemctl -a — все юниты
  • systemctl —typer=тип — юниты указанного типа
  • systemctl cat имя_юнита — просмотр юнита
  • systemctl -full edit имя_юнита — редактирование юнита
  • systemctl —force —full edit имя_юнита — создание юнита
  1. Посмотрим список юнитов типа .service: systemctl -a —type=service
  2. Посмотрим файл юнита rc-local.service: systemctl cat rc-local.service

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.