Systemd

Материал из Записи-напоминании
Перейти к навигации Перейти к поиску

Команды

systemd-analyze {blame,plot}

systemd-cgls

systemd-cgtop

systemctl kill -s SIGKILL *.service

systemctl kill -s HUP --kill-who=main *.service

systemctl is-{active,enabled,failed} *.service

systemctl list-units --type=service

systemctl list-dependencies *.service --{after,before}

systemctl edit --full *.service

systemd-escape -p --suffix=mount '/home/postgres/cluster/13/pg_stat_tmp'

Составление юнитов

Общее

Модификаторы

Модификатор принимает положение в начале строкового значения параметра

Модификатор + определяет исполнение операции от пользователя root

Модификатор - определяет игнорирование кода завершения исполнения операции, существование объекта файловой системы и т.д.

Модификатор ! возвращает противоположное логическое true/false

Модификатор ~ инвентирует список объектов как черный список

Переменные

$MAINPID

Секция [Unit]

Description= //описание юнита
Requires= //значение имен юнитов, являющихся жесткими зависимостями
Wants= //значение имен юнитов, являющихся мягкими зависимостями
After= //текущий юнит выставить в очередь запуска после перечисленных юнитов 
Before= //текущий юнит выставить в очередь запуска до перечисленных юнитов
PartOf= //значение имени юнита, команда запуска/перезапуска/останова которого так же распространяется на текущий юнит
Conflicts= //значение имен юнитов, запуск которых является конфликтным и завершает выполнение текущего юнита
DefaultDependencies=no //не задействовать зависимости по умолчанию

Секция [Service]

ExecStartPre={,+,-}
ExecStart={,+,-}
ExecStartPost={,+,-}
ExecStop=
ExecStopPost= //вызывается и в случае неудачного запуска службы
KillMode=mixed
RemainAfterExit=yes //считать службу активной при фактическом завершении ее процессов
Restart={always,on-success,on-failure,on-abnormal,on-abort,on-watchdog}
RestartSec=5
Environment="LD_PRELOAD=/path/to/malloc/library" //переменная среды исполнения службы
EnvironmentFile={,-}/etc/sysconfig/openvswitch //файл, содержащий переменные среды
OOMScoreAdjust=-1000
User=
Group=
StandardInput=socket //inetd запуск
InaccessibleDirectories=/home //запрет видимости директории
ReadOnlyDirectories=/var //запрет записи в директории, кроме смонтированных ФС внутри директории
CapabilityBoundingSet={,~} /разделенный пробелом список |привилегий
DeviceAllow=/dev/null r{,w} //белый список разрешения обращения к блочным устройствам
BlockIOWeight=500 //от 10 до 1000, по умолчанию 1000
BlockIOWeight=/dev/disk/by-id/ata-SAMSUNG_MMCRE28G8MXP-0VBL1_DC06K01009SE009B5252 750
BlockIOWeight=/home/lennart 750
BlockIOReadBandwith=/var/log 5M

Составление юнита socket

[Unit]
Description=SSH Socket for Per-Connection Servers

[Socket]
ListenStream=22
Accept=yes //yes - третья схема inetd (nowait), no - вторая (wait)

[Install]
WantedBy=sockets.target

Составление юнита timer

.. //период/промежуток между двумя значениями времени (с года по год; с месяца по месяц; с дня по день; и т.д.)

, //разделитель перечисления времени (год,год; месяц,месяц; день;день; и т.д.)

* //маска подстановки любого значения

[Unit]
Description=test
[Timer]
OnBootSec=10s //запустить через заданное время после поднятия системы
OnUnitActiveSec=10s / OnUnitInactiveSec=10s //повторный запуск через каждый заданный промежуток времени, начиная с момента последнего запуска/завершения юнита
OnCalendar=ДеньНедели Год-Месяц-День Часы:Минуты:Секунды //точное время запуска
//пропуск "ДеньНедели" означает с пн по вс
OnCalendar=weekly //запускаться один раз в неделю (в 12:00 в понедельник)
OnCalendar=Sat,Sun 20:00 //в сб и вс в 20:00
OnCalendar=Mon..Fri 22:30 //с пн по пт в 22:30
Persistent=true //запустить пропущенное задание
[Install]
WantedBy=timers.target

Составление юнита mount

[Unit]
Description=test
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target
[Mount]
What=tmpfs
What=/dev/$device
Where=/mnt/tmp
Type=tmpfs //что монтируется: tmpfs -> тип монтируемого: tmpfs
Type=xfs //для блочного устройства
Options=mode=1777,nosuid,nodev,size=1G //для tmpfs
Options=mode=defaults //для xfs и т.п.
[Install]
WantedBy=local-fs.target

Журналирование

Параметр Значения значение по умолчанию Версия systemd
Storage - хранение журнала volatile - хранение только в оперативной памяти
persistent - хранение на накопителе
auto - хранение на накопителе; хранение в оперативной памяти по окончанию свободного места на накопителе
none - хранение отключено
auto 186
ReadKMsg - обработка сообщений /dev/kmsg yes, no yes 235
Compress - сжатие журнала yes, no no -
SystemMaxUse - максимальный объем хранимого журнала [0-9]{1,X}(K|M|G|T) - -
SystemKeepFree - минимально допустимый объeм свободного места на накопителе [0-9]{1,X}(K|M|G|T) - -