Apenas respondendo à parte de reinicialização do serviço. Encontrei o Monit também, mas no CentOS 7 o systemd cuida de tudo isso para você. Você só precisa adicionar essas duas linhas ao arquivo .service (se elas ainda não estiverem lá):
Restart=always
RestartSec=3
Consulte https://jonarcher.info/2015/08/ensure-systemd-services-restart-on-failure/ para obter referência.
Se você deseja criar um serviço systemd personalizado, é bastante simples gravar seu próprio arquivo de serviço. Veja o exemplo abaixo, para um servidor http personalizado.
Inicie o editor com um novo arquivo de serviço:
vim /etc/systemd/system/httpd.service
E adicione o seguinte conteúdo, que você pode editar conforme necessário:
[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
Quero que ele inicie automaticamente na inicialização:
systemctl enable httpd
Informe o systemd sobre as alterações e inicie o serviço:
systemctl daemon-reload
systemctl start httpd
E agora você pode ver o status:
systemctl status httpd
Para referência, consulte https://scottlinux.com/2014/12/08/how-to-create-a-systemd-service-in-linux-centos-7/