centos7 寫了tomcat的啓動腳本,腳本從網上copy的。java
[Unit]
Description=tomcat-1
After=syslog.target network.target remote-fs.target nss-lookup.targetweb
[Service]
Type=forking
Environment='JAVA_HOME=/usr/local/java/jdk1.8.0_151/'
WorkingDirectory=/usr/local/tomcat-1/webappscentos
ExecStart=/usr/local/tomcat-1/bin/startup.sh
ExecStop=/usr/local/tomcat-1/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPIDtomcat
PrivateTmp=True安全
User=devapp
Group=devwebapp
[Install]
WantedBy=multi-user.targetcentos7
雖然能夠正常啓動關停tomcat,但用jps命令根本看不到這個tomcat進程。進程
網上一查說是catalina.sh沒有把tmp指定到/tmp目錄,但我改了以後仍是看不到。ip
最終一番排查發現網上copy的腳本里有以下這一句,去掉再重啓,jps就能夠看到tomcat進程了。
PrivateTmp=true
這是由於tomcat啓動後會把啓動後jdk相關信息寫在/tmp/hsperfdata_root目錄下,jps就去/tmp目錄下打開這個文件,並把信息展示給用戶,但/tmp這個目錄權限是777,任何人均可以查看,centos7認爲這樣不安全,容易泄露信息,因而官方啓動腳本里就有
PrivateTmp=true這麼一句,這樣一來tomcat啓動後,就不會把相關信息寫入/tmp目錄裏,也就形成jps沒法看到tomcat進程了。