it-swarm-ru.tech

Написание основных файлов службы systemd

Я разрабатываю приложение Nodejs, с которым пользователь взаимодействует через HTTP на localhost. Параметров практически нет, и у демона практически нет зависимостей, и он просто должен быть включен ко времени входа в систему.

Я хотел бы следовать идиомам на каждой платформе для сценариев запуска, а это означает Upstart в Ubuntu и systemd в Fedora.

  • Есть ли хорошие руководства для написания системных файлов systemd?
  • Есть ли какие-либо "лучшие практики", о которых следует знать?

Я нашел эти ресурсы:

В основном я ищу своего рода API-интерфейс в качестве справочного материала, а также базовый формат для подражания.

106
beatgammit

Я бы начал с страницы справочника Systemd . Они представляют собой комплексный ресурс системы и услуг.

Также есть часто задаваемые вопросы по freedesktop Systemd .

26
jasonwryan

Следующий пример основан на этой ссылке, которая на самом деле не содержит всех шагов и приведена только для указания источника: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files .html

Шаг 1 : я создал этот файл (местоположение заметки), который по сути запускает процесс bash с расширенным аргументом. Вы можете запустить свою собственную команду, которая может отличаться от bash.

[[email protected] ~]# cat /etc/systemd/system/foo.service 
[Unit]
Description=foo

[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"

[Install]
WantedBy=multi-user.target

Шаг 2 :

Перезагрузить systemd:

systemctl daemon-reload

Запустите новый сервис:

systemctl enable foo

(аналогично вы можете disable it)

(необязательно) Шаг 3 : он должен запускаться автоматически при следующей перезагрузке в многопользовательском режиме (уровень запуска 3), но если вы хотите запустить его сразу :

systemctl start foo
systemctl status foo # optional, just to verify

Обновление: Для полноты, я должен добавить, что Ubuntu Bionic, похоже, имеет очень тщательную справочную страницу. RTFM здесь

184
necromancer
4
caracal