是否可以给 JCMD 一个服务名称而不是 PID?

是否可以给 JCMD 一个服务名称而不是 PID?

我需要自动监控服务,但 PID 每次重启后都会发生变化

所以我希望能够做到

jcmd servicename Thread.print > log.txt

而不是

jcmd 2230 Thread.print > log.txt

或者我想要一种方法将 pid 存储在变量中

var =`pidof servicename`  # didn't work

这是 centos 6.5,我没有systemctl,我用service

答案1

我认为如果可以将 PID 存储在文件中并在需要时从文件中读取它是可以的。我已经看到 CentOS 中的许多服务都这样做了。它们中的大多数使用它来避免启动新进程,以防另一个进程已经在运行。一些启动脚本结合使用从文件获取 PID 和从正在运行的进程获取 PID 来通知用户文件系统上是否存在过时的 PID 文件。包含 PID 的文件通常保存在 /var/run//.pid 中

相关内容