systemctl啓動tomcat後,jps看不到進程

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進程了。
相關文章
相關標籤/搜索