===== Как создать свою службу (unit) в systemd на CentOS 7 =====
Предположим, у нас есть веб-сервер **Apache** на базе **CentOS 7**, для которого настроено какое-то кастомное веб-приложение, требующее при загрузке системы предварительного прогревочного запуска. То есть, перед тем, как пользователи начали с ним работу, необходимо выполнить вызов какого-либо URL для того, чтобы при первом обращении к веб-приложению пользователи не испытывали задержек его отклика. Для решения этой задачи мы воспользуемся функционалом **systemd** и создадим свою службу (**unit**), которая будет выполнять прогревочную команду после запуска основной службы веб-сервера.
Создадим файл службы с любым удобным для нас именем, например **webapp-warmup**.
# touch /etc/systemd/system/webapp-warmup.service
Наполним файл содержимым примерно следующего вида:
[Unit]
Description=Warmup web application server
After=httpd.service
[Service]
Type=simple
ExecStart=/bin/curl -svkf -o /dev/null https://localhost/my-web-app-up/
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Пробуем выполнить запуск службы. Служба должна запуститься без ошибок:
# systemctl start webapp-warmup
Убедимся в том, что наша служба фигурирует в списке служб systemd:
# systemctl list-unit-files | grep webapp-warmup
Включаем автозагрузку службы при старте системы:
# systemctl enable webapp-warmup
Перезагружаем сервер и убеждаемся в том, что в процессе запуска системы, после запуска служб httpd, успешно запускается наша прогревочная служба:
# systemctl status webapp-warmup
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 03.10.2016 14:00
{{tag>Linux CentOS "CentOS 7" systemd startup Service Unit httpd Apache "web server"}}
~~DISCUSSION~~