Solo responde a la parte de reinicio del servicio. También me encontré con Monit, pero en CentOS 7 systemd se encarga de todo eso por ti. Solo necesita agregar estas dos líneas al archivo .service (si aún no están allí):
Restart=always
RestartSec=3
Ver https://jonarcher.info/2015/08/ensure-systemd-services-restart-on-failure/ para referencia.
Si desea crear un servicio systemd personalizado, es bastante sencillo escribir su propio archivo de servicio. Vea el siguiente ejemplo, para un servidor http personalizado.
Inicie el editor con un nuevo archivo de servicio:
vim /etc/systemd/system/httpd.service
Y agregue el siguiente contenido, que puede editar según sea necesario:
[Unit]
Description=My httpd Service
After=network.target
[Service]
Type=simple
User=root
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PERLLIB=/perl
ExecStart=/bin/httpd /etc/httpd.conf
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
Quiero que se inicie automáticamente en el arranque:
systemctl enable httpd
Informe a systemd sobre los cambios e inicie el servicio:
systemctl daemon-reload
systemctl start httpd
Y ahora puedes ver el estado:
systemctl status httpd
Para referencia, consulte https://scottlinux.com/2014/12/08/how-to-create-a-systemd-service-in-linux-centos-7/