Wie verwende ich Daemonize, um meinen Tomcat-Prozess immer am Laufen zu halten?

Wie verwende ich Daemonize, um meinen Tomcat-Prozess immer am Laufen zu halten?

Ich habe recherchiert, wie man einen Hintergrundprozess am Laufen hält, und bin auf daemonize gestoßen. In dieser Antwort heißt es, dass ich daemonize verwenden kann, um sicherzustellen, dass ein Prozess immer läuft: "Stellen Sie sicher, dass ein Prozess immer ausgeführt wird". Ich habe die Manpage durchgesehen:http://software.clapper.org/daemonize/daemonize.html.

Es schließt lediglich stdin, stdout, stderr, ändert das Arbeitsverzeichnis zum Root-Verzeichnis usw. Es macht all die Dinge, die ein guter Hintergrundprozess tun sollte.

Das einzige, was ich im Zusammenhang mit dem Neustart gefunden habe, war -p pidfile zum Ausgeben der Prozess-ID und -l lockfile, um sicherzustellen, dass nur ein Prozess gestartet wird.

Antwort1

Wenn Sie das Tomcat-Paket Ihrer Distribution nicht verwenden möchten, können Siesystemdund definieren Sie Ihre eigene Unit-Datei wie:

# 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

Lesen Sie das TutorialSo installieren Sie Apache Tomcat 8 auf CentOS 7für alle Einzelheiten.

verwandte Informationen