Go to content Go to menu Go to search

Шпаргалка по systemd (systemctl)

Запуск/остановка/включение/отключение сервиса:

systemctl start sshd
systemctl stop sshd
systemctl enable sshd
systemctl disable sshd

Статус сервиса и список сервисов

systemctl list-unit-files
systemctl list-units
systemctl status sshd
journalctl -xe

Как изменить скрипты запуска systemd

Основные каталоги, где хранятся юниты:

/usr/lib/systemd - тут хранятся юнит-файлы, которые установлены из пакетов
/etc/systemd     - сдесь ссылки на вышеуказанные юнит-файлы, а так-же юнит-файлы, кторые создает пользователь.

Свои юнит-файлы следует класть в папку /etc/systemd/system

Если нам не нравится юнит-файл, который был поставлен из пакета, его можно изменить двумя способами:

полное owerride:

Копируем юнит-файл из /usr/lib/systemd/system в /etc/systemd/system и правим как хотим. Файл в /etc/systemd/system полностью заменяет (т.е. он главнее), файл в /usr/lib/systemd/system. Миннус - при апгрейде новый юнит файл, который из пакета не будет применен, а там могут оказаться важные опции без которых новая версия не стартует.

частичное owerride:

Cоздаем папку /etc/systemd/system/<имя_юнита>.service.d/ в этой папке делаем файл override.conf, в котором указываем только те опции, которые хотим изменить.

Тут есть нюансы!

  1. В файле override.conf кроме самих опций нужно указать имя раздела
  2. Для опций, которые могут быть объявлены много раз (ExecStart, After, Environment), нужно сперва очистить содержимое.

Пример override.conf для юнита sshd, если мы хотим включить режим debug:

[service]
ExecStart=
ExecStart=/usr/sbin/sshd -d -D $OPTIONS

После внесения изменений нужно их загрузить командой:

systemctl daemon-reload

Отобразить содержимое юнита:

systemctl cat sshd

Изменить содержимое юнита можно так-же командой:

systemctl edit sshd

команда откроет файл override.conf в редакторе vi

Как создать скрипт запуска systemd

Пример юнит-файла /etc/systemd/system/rclocal.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local

[Service]
Type=simple
ExecStart=/etc/rc.local
Restart=always
StandardOutput=journal
# WorkingDirectory=/tmp
# Environment=TERM=LD_LIBRARY_PATH="/usr/local/lib"


[Install]
WantedBy=multi-user.target

Настройка демона journald

С настройками по умолчанию журналы systemd склонны пожирать все свободное место на диске, обязательно нужно настраивать!

Я делаю примерно так /etc/systemd/journald.conf:

[Journal]
Compress=yes
SystemMaxUse=500M
SystemMaxFileSize=100M
MaxRetentionSec=30day

после чего перезапустить демон

systemctl restart systemd-journald

Очистка логов вручную:

journalctl --vacuum-size=50M


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved