Estaba investigando cómo mantener un proceso en segundo plano en ejecución y encontré daemonize. Esta respuesta dice que puedo usar daemonize para asegurar que un proceso esté siempre ejecutándose: "Asegúrese de que un proceso esté siempre en ejecución". Revisé la página de manual:http://software.clapper.org/daemonize/daemonize.html.
Solo cierra stdin, stdout, stderr, cambia el directorio de trabajo a raíz, etc. Está haciendo todas las cosas que debería hacer un buen proceso en segundo plano.
Lo único que encontré relacionado con el reinicio fue -p pidfile para generar la identificación del proceso y -l lockfile para asegurarme de que solo se inicie un proceso.
Respuesta1
Si no desea utilizar el paquete Tomcat de su distribución, puede utilizarsistemady defina su propio archivo de unidad como:
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Lee el tutorialCómo instalar Apache Tomcat 8 en CentOS 7para más detalles.