我有一些Java组件,有时候会出现崩溃的情况,但唯一的发现方式是当用户抱怨他们收到错误信息时。为此,在我们的监控系统上,我采用了计算服务器上运行的Java进程数量的方法。如果一个组件崩溃了,我会得到警报,因为Java阈值低于正常水平,并登录以找出哪个Java组件崩溃了。这种方法非常有效,但我认为它可以被改进,实现远程启动Java进程并精确定位崩溃的组件。
因此,我考虑编写 Powershell 脚本,从监控系统中执行。我认为我已经完成了“单行代码”,但我需要更多帮助才能完成整个脚本,尽管我认为这个脚本不需要太复杂。
目前我拥有的代码如下:
这个命令的输出会给出发送到JVM的所有参数,包括组件的名称。我们称这个组件为“COMP_Number1”,通常有5个Java组件进程正在运行,因此组件的名称为“COMP_Number2”、“COMP_Number3”等。
我的问题是:给定 $theProcess 的输出,如何检查所有Java进程以验证所有组件是否正在运行?如果没有,哪一个没有在运行?
非常感谢!
TT
因此,我考虑编写 Powershell 脚本,从监控系统中执行。我认为我已经完成了“单行代码”,但我需要更多帮助才能完成整个脚本,尽管我认为这个脚本不需要太复杂。
目前我拥有的代码如下:
$theProcess = Get-WmiObject win32_process -Filter "name like '%java%'" | select commandLine
这个命令的输出会给出发送到JVM的所有参数,包括组件的名称。我们称这个组件为“COMP_Number1”,通常有5个Java组件进程正在运行,因此组件的名称为“COMP_Number2”、“COMP_Number3”等。
我的问题是:给定 $theProcess 的输出,如何检查所有Java进程以验证所有组件是否正在运行?如果没有,哪一个没有在运行?
非常感谢!
TT