如何使用Java编程检查进程和端口是否处于活动状态?

如何使用Java编程检查进程和端口是否处于活动状态?,java,linux,cluster-computing,Java,Linux,Cluster Computing,我只是想用Java在Linux中构建一个集群软件。我想控制CPU负载,例如,如果CPU负载高于阈值,则减少执行线程的大小。我想我可以通过demon线程每秒或几秒钟检查一次CPU负载,如何在Java中实现它?如果我要检查特定进程是否死了,以及它打开的端口是否丢失,那么如何在Java中实现呢?在纯Java中没有办法(AFAIK)做到这一点。您可以编写一些本机C来实现这一点,然后使用JNA/JNI进行接口(这将是最健壮的解决方案) 或者,一种快速简便的方法(如果您只是使用Linux的话)是使用Runt

我只是想用Java在Linux中构建一个集群软件。我想控制CPU负载,例如,如果CPU负载高于阈值,则减少执行线程的大小。我想我可以通过demon线程每秒或几秒钟检查一次CPU负载,如何在Java中实现它?如果我要检查特定进程是否死了,以及它打开的端口是否丢失,那么如何在Java中实现呢?

在纯Java中没有办法(AFAIK)做到这一点。您可以编写一些本机C来实现这一点,然后使用JNA/JNI进行接口(这将是最健壮的解决方案)

或者,一种快速简便的方法(如果您只是使用Linux的话)是使用
Runtime.exec()
调用其中一种方法,然后可以从Java中解析

在检查进程是否死机方面,您可以使用上述方法,但要使用
ps


编辑:可能会有帮助。

是否有一些C库可以获得CPU负载以及套接字是否丢失?@user84592查看我的编辑,有一个Java库,其中嵌入了C代码,可以执行您想要的操作。