Показаны сообщения с ярлыком systemd.service. Показать все сообщения
Показаны сообщения с ярлыком systemd.service. Показать все сообщения

суббота, 27 апреля 2024 г.

переход с supervisor на systemd

 Автоматический перезапуск решается штатно, через Restart=always или более правильное Restart=on-failure. Помним про дополнительные StartLimit* итд для постоянного рестарта при нескольких неудачах.

Вопрос сложнее - чем заменить numprocs из supervisor. Мне удалось найти только 1 вариант, через имя с @

https://unix.stackexchange.com/questions/288236/have-systemd-spawn-n-processes

Ну и логи иногда нужны в файлах, тогда есть

StandardOutput=/path_to_log/service.log

StandardError=/path_to_log/service_error.log

Может быть =syslog, тогда будет пойдёт через подсистему рсислога (+ SyslogIdentifier=)

Ну и помним про "костыль" вида ExecStart=aaa >/var/log/1 2>&1

вторник, 16 апреля 2024 г.

переход с crontab на systemd timer

 Если вкратце:

1) делаем сервис с Type=OneShot

2) делаем таймер, который запускает этот сервис

Более подробно и примеры

https://opensource.com/article/20/7/systemd-timers

Строка запуска раз в минуту будет такой:

OnCalendar=*-*-* *:*:00

PS команда для быстрого создания сервиса без возни с файлами:

systemctl edit --full --force cron.service

systemctl edit --full --force cron.timer

вторник, 31 января 2017 г.

systemd: больше информации по service файлам

По опциям для .service файлов даже гугл выдаёт совсем не то, что просят. В частности, почти нереально сделать запрос так, чтобы найти аналог того же locked memory (-l), но без ulimit.
И вот она, табличка:
Table 1. Resource limit directives, their equivalent ulimit shell commands and the unit used
Directiveulimit equivalentUnit
LimitCPU=ulimit -tSeconds
LimitFSIZE=ulimit -fBytes
LimitDATA=ulimit -dBytes
LimitSTACK=ulimit -sBytes
LimitCORE=ulimit -cBytes
LimitRSS=ulimit -mBytes
LimitNOFILE=ulimit -nNumber of File Descriptors
LimitAS=ulimit -vBytes
LimitNPROC=ulimit -uNumber of Processes
LimitMEMLOCK=ulimit -lBytes
LimitLOCKS=ulimit -xNumber of Locks
LimitSIGPENDING=ulimit -iNumber of Queued Signals
LimitMSGQUEUE=ulimit -qBytes
LimitNICE=ulimit -eNice Level
LimitRTPRIO=ulimit -rRealtime Priority
LimitRTTIME=No equivalentMicroseconds
отсюда: https://www.freedesktop.org/software/systemd/man/systemd.exec.html

Выбираем, ставим. Размерности тоже принимаются. Для бесконечности ставим infinity
Также в помощь man systemd.directives