我想编写一个要部署在unix盒子上的java应用程序。我需要检查正在运行的进程,这些进程正在盒子上运行。有人能给我举个例子/给我指明正确的方向吗?
如果你想找到正在运行的java进程,你可以使用
ps -ef | grep java
如果您需要检查哪些端口正在使用,
netstat -tupln
我发现了一些Java提供的ps aux | grep java
的替代方案,它们需要更少的类型:
jcmd
和
jps -v
选项-v
将显示传递给JVM的参数。
如果进程信息不可用,这可能是因为该进程使用OpenJDK运行。如果您是root用户,并且进程是由非root用户启动的,您可以使用以下内容查看详细信息(用用户名替换<user>
):
sudo -u <user> jps -v
jcmd
的另一个不错的特性是,您可以显示特定进程使用的Java版本(以防ps aux | grep java
没有显示),这就是我遇到这两者的原因(用进程id替换<pid>
):
jcmd <pid> VM.version