![如何使用 daemonize 來始終保持 Tomcat 進程運行?](https://rvso.com/image/97229/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20daemonize%20%E4%BE%86%E5%A7%8B%E7%B5%82%E4%BF%9D%E6%8C%81%20Tomcat%20%E9%80%B2%E7%A8%8B%E9%81%8B%E8%A1%8C%EF%BC%9F.png)
我正在研究如何保持後台進程運行,並且遇到了守護進程。這個答案說我可以使用 daemonize 來確保進程始終運行:“確保進程始終運行「。我瀏覽了手冊頁:http://software.clapper.org/daemonize/daemonize.html。
它只關閉 stdin、stdout、stderr、將工作目錄更改為 root 等。
我發現與重新啟動相關的唯一一件事是 -p pidfile 用於輸出進程 id 和 -l lockfile 用於確保只啟動一個進程。
答案1
如果你不想使用你的發行版的 tomcat 包,你可以使用系統並定義您自己的單元文件,例如:
# 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
閱讀教學如何在 CentOS 7 上安裝 Apache Tomcat 8了解完整詳情。