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