是否有另一种方法来监视正在运行的Java进程,而不是将PID与Monit一起使用?
答案 0 :(得分:-1)
没有PID文件你不能使用monit。如果您的进程没有创建PID文件,则必须创建一个包装器来启动程序并为monit创建PID文件。请参阅官方Monit FAQs。
修改强>
Monit有一个PID文件以外的方法,它是进程名称。但是对于这个过程,名称应该是唯一的。来自documentation:
- 醇>
CHECK PROCESS [唯一名称] PIDFILE [路径] |匹配[正则表达式]
[path]是程序的pid文件的绝对路径。 pid文件是一个文件,包含进程的唯一ID。如果pid文件没有 存在或不包含正在运行的进程的PID号,Monit 如果已定义,将调用条目的start方法。
[regex]是使用PID文件的替代方法,并使用进程名称模式匹配来查找要监视的进程。第一场比赛是 如果进程名称是这样的,那么这种形式的检查是最有用的 独特。应尽可能使用Pid文件,因为它定义了预期 精确的pid(模式匹配对于哪些进程没有用 使用fork / clone启动子进程,因为子进程将匹配 暂时相同的模式)。您可以测试进程是否与模式匹配 从命令行使用monit procmatch“regex-pattern”。这将 列出所有匹配或不匹配的进程,正则表达式。