Some commands systemd

Some commands systemd init.

systemctl list-units

systemctl --failed

systemctl list-units --type=service

systemctl list-unit-files

systemctl list-unit-files --state=enabled

journalctl -n 100

journalctl -f

journalctl --since="2017-03-30 6:20"

journalctl -u zabbix-agent --since="2017-03-30 6:20"

Проверить, включен ли юнит в автозапуск при загрузке системы:

$ systemctl is-enabled юнит

Включить юнит в автозапуск при загрузке системы:

# systemctl enable юнит

Убрать юнит из автозапуска при загрузке системы:

# systemctl disable юнит

Маскировать юнит, чтобы сделать невозможным его запуск:

# systemctl mask юнит

Снять маску юнита:

# systemctl unmask юнит

Релоад-демонов:

# systemctl daemon-reload

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target

[Service]
ExecStart=/usr/sbin/named -f -u bind -4
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop

[Install]
WantedBy=multi-user.target

Типы служб
Существует несколько различных типов запуска служб, которые надо иметь в виду при написании пользовательского файла службы. Тип определяется параметром Type= в секции [Service]:
Type=simple (по умолчанию): systemd предполагает, что служба будет запущена незамедлительно. Процесс при этом не должен разветвляться. Не используйте этот тип, если другие службы зависят от очередности при запуске данной службы. Исключение – активация сокета
Type=forking: systemd предполагает, что служба запускается однократно и процесс разветвляется с завершением родительского процесса. Используйте данный тип для запуска классических демонов за исключением тех случаев, когда, как вам известно, в таком поведении процесса нет необходимости. Вам следует также определить PIDFile=, чтобы systemd могла отслеживать основной процесс
Type=oneshot: полезен для скриптов, которые выполняют одно задание и завершаются. Вам может понадобиться также установить параметр RemainAfterExit=yes, чтобы systemd по-прежнему считала процесс активным, даже после его завершения
Type=notify: идентичен параметру Type=simple, но с той оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления представлена в libsystemd-daemon.so
Type=dbus: сервис считается находящимся в состоянии готовности, когда определенное BusName появляется в системной шине DBus
Type=idle: systemd will delay execution of the service binary until all jobs are dispatched. Кроме того, поведение очень похоже на Type=simple.

Есть два способа редактирования файлов юнита, предоставленного пакетом: заменить весь блок файла на новый или создать фрагмент кода, который применяется в верхней части существующего блока файла. В обоих методах, чтобы применить изменения, нужно перезагрузить юнит. Это может быть сделано либо путем редактирования блока с помощью systemctl edit (которая автоматически загружает модуль) либо при перезагрузке всех юнитов:
# systemctl daemon-reload

Обработка зависимостей
В случае использования systemd зависимости могут быть указаны правильным построением файлов юнитов. Наиболее частый случай — юниту A требуется, чтобы юнит B был запущен перед тем, как запустится сам юнит A. В этом случае добавьте строки Requires=B и After=B в секцию [Unit] файла службы A. Если подобная зависимость не является обязательной, взамен указанных выше добавьте, соответственно, строки Wants=B и After=B. Обратите внимание, что Wants= и Requires= не подразумевают After=, что означает, что если After= не определено, два юнита будут запущены параллельно друг другу.
Обычно зависимости указываются в файлах служб, а не в целевых юнитах. Например, network.target потребуется любой службе, которая связана с настройкой ваших сетевых интерфейсов, поэтому в любом случае определите загрузку вашего пользовательского юнита после запуска network.target.

Примеры
Например, если вы просто хотите добавить дополнительную зависимость к юниту, можно создать следующий файл:
/etc/systemd/system/unit.d/customdependency.conf
[Unit]
Requires=new dependency
After=new dependency

В качестве другого примера, для того чтобы заменить направление для юнита ExecStart, что не относится к типу oneshot, создайте следующий файл:

/etc/systemd/system/unit.d/customexec.conf
[Service]
ExecStart=
ExecStart=новая комманда

Обратите внимание ExecStart должна быть очищена, перед новым назначением ([1]).

Еще один пример, чтобы автоматически перезапустить службу:
/etc/systemd/system/unit.d/restart.conf
[Service]
Restart=always
RestartSec=30