Используемая ОС — Ubuntu 18.04, веб-сервис — Apache2.
Открываем на редактирование конфигурационный файл сервиса (демона) по адресу /lib/systemd/system/apache2.service
командой:
sudo nano /lib/systemd/system/apache2.service
и видим примерно следующее:
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
[Install]
WantedBy=multi-user.target
В конец раздела [Service]
необходимо добавить строки
Restart=always
RestartSec=3
чтобы получилось следующее:
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
В строке RestartSec=3
указывается время в секундах, через которое будет выполнена попытка перезапустить сервис; в нашем примере этот промежуток равен трём секундам.
Сохраняем изменения, выходим из редактора и перезапускаем демон, чтобы применились новые настройки конфигурации, следующей командой:
sudo systemctl daemon-reload
Теперь, в случае неожиданного несанкционированного «падения веб-сервера», сервис апача перезапустится автоматически через указанное Вами количество секунд.
Всё готово!