Как создать пользовательский целевой модуль systemd в CentOS / RHEL / Fedora

by itisgood

Иногда, как системный администратор, вы можете захотеть управлять сторонней службой приложений, используя целевой модуль systemd.

Это позволяет нам использовать команду systemctl для запуска, остановки и просмотра статуса службы.

Кроме того, вы можете захотеть объединить несколько сторонних приложений в один системный целевой модуль для простоты администрирования.

В этом посте мы увидим такой пример, где мы будем управлять 4 прикладными службами, используя один целевой модуль systemd.

Это позволит нам выполнить четыре команды systemctl всего одним вызовом.

Например:

# systemctl app start

Настройка пользовательской целевой системы systemd

1. Создайте файл «Target Unit» в /etc/systemd/system.

Это должно выглядеть так:

# vi /etc/systemd/system/app.target

[Unit]
Description=App Service Unit

# This collection of apps should be started at boot time.
[Install]
WantedBy=multi-user.target

2. Затем каждый экземпляр клиента должен включать «PartOf» в разделе [Unit], а также должен иметь раздел [Install], чтобы включение и отключение работали для конкретной службы:

# vi  /etc/systemd/system/app1.service

[Unit]
Description= Instance of App Service
PartOf=app.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/mark/bin/app-poc.sh start
ExecStop=/home/mark/bin/app-poc.sh stop

# When the service runs globally, make it run as a particular user for added security
#User=myapp
#Group=myapp

# When systemctl enable is used, make this start when the App service starts
[Install]
WantedBy=app.target

3. Выполните приведенные ниже команды, чтобы перезагрузить systemd и активировать автоматический запуск новых целевых модулей после перезагрузки.

# systemctl daemon-reload 
# systemctl enable app.target
# systemctl enable app1.service
# systemctl enable app2.service

 

You may also like

Leave a Comment