linux7 使用systemctl 启动 tomcat 导致 jstat 命令 报 pid not found 问题解决

阅读更多

经过了解:
java进程把jvm perfdata存到了 /tmp/hsperfdata_{USER}/{PID} 文件里。
使用jstat命令查看jvm gc情况,在找不到或者没有权限读取hsperfdata_{USER}/{PID}的时候会报pid not found
使用systemctl 启动tomcat,tomcat.service如下:
Type=forking
PIDFile=/var/run/tomcat.pid
ExecStart=/opt/tomcat/apache-tomcat-8.5.32/bin/catalina.sh start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

当PrivateTmp=true 服务启动时会在
tmp目录下生成类似systemd-private-**************************-tomcat 的文件夹

hsperfdata_{USER}/{PID}会生成在/tmp/systemd-private-**************************-tomcat/tmp/ 目录下
所以使用jstat命令 查看tomcat的gc 情况 会报pid not found
修改PrivateTmp=false 重新生产启动服务问题解决

 

你可能感兴趣的:(linux7 使用systemctl 启动 tomcat 导致 jstat 命令 报 pid not found 问题解决)