Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:systemd:how-to-create-warmup-command-for-apache-httpd-via-custom-service-unit-in-systemd

Как создать свою службу (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

Автор первичной редакции:
Алексей Максимов
Время публикации: 03.10.2016 14:00

Обсуждение

Ваш комментарий:
 

unix-linux/systemd/how-to-create-warmup-command-for-apache-httpd-via-custom-service-unit-in-systemd.txt · Последние изменения: 03.10.2016 14:26 — Алексей Максимов