сервисы systemd

Старые и новые сервисы (rc.d и systemd)

На смену старых скриптов инициализации (rc.d) пришла новая система systemd.

Systemd доступна с версии:

  • Debian 8 и выше
  • Ubuntu 15.04 и выше
  • CentOS 7 и выше

Синтаксис systemd немного отличается от старой системы: он более сложный, но в то же время более функциональный. В данной статье будет рассмотрено написание сервисов именно для systemd.

Что будет делать сервис

Здесь мы рассмотрим самый минимальный пример: сервис при старте системы будет только запускать указанный нами баш-скрипт, а в самом скрипе на привычном bash мы уже можем писать всё, что нам угодно.

Для простоты остановка сервиса не предусмотрена.

Пример простого сервсиса для systemd

Где располагаются сервисы

Сервисы, созданные администратором хранятся в директории /etc/systemd/system/ . Создаём там новый файл example.service.

Пример простого сервиса

[Unit]
Description=Launch external script service
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/home/debian/bin/myscript.sh
[Install]
WantedBy=local-fs.target

Пояснения

Description - описание нашего сервива

After - после чего загружать наш скрипт. В данном случае мы ждём что хотя бы поднимется сеть и включится логирование.

Type - здесь несколько опций. Самые распространённые: simple, forking, oneshot.

ExecStart - полный путь к запускаемому скрипту.

WantedBy - какие юниты завиcят от нашего сервиса. Чаще всего тут указывают либо local-fs.target для однопользовательской консольной системы либо multi-user.target для многопользовательской/графической системы.

Где копать дальше

Если простой скрипт заработал, но хочется чего-то более сложного, можно ознакомиться с документацией к systemd от RedHat.

 

Добавить комментарий


Поиск