0

我有一个通过 unix (Solaris 9) 中的脚本执行的类。在脚本内部,该类正在像这样运行:

java -cp $CLASSPATH myPackage.component.MyMainClass $PROPERTIES_PATH/myMainClassProperties.properties

需要监视该 shell 以查看它是正常工作还是失败,并且它还将与不同的参数文件并行运行。所以,我的问题是:

  • 如果我使用top,我怎么知道正在执行什么类。那可能吗?**
  • 有没有办法唯一标识类,这样它在并行运行时就不会崩溃?
  • 它会一直显示myPackage.component.MyMainClass在进程表中吗?

当我说并行时,我指的是:

java -cp $CLASSPATH myPackage.component.MyMainClass $PROPERTIES_PATH/myMainClassProperties.properties

在另一个窗口/会话/作业中

java -cp $CLASSPATH myPackage.component.MyMainClass $PROPERTIES_PATH/mySomeOtherProperties.properties

**当我这么说时,是因为 top 显示了这样的内容:

PID 用户名 THR PRI NICE SIZE RES 状态 时间 CPU 命令
8545 蝙蝠侠 47 4 10 190M 112M 睡眠 0:04:00 0.07% java
9022 小丑 91 4 10 286M 211M 睡眠 0:01:00 0.09% java
4

2 回答 2

1

您可以top告诉您完整的命令,其中将包括您传递给VM.

还将ps为您提供完整的命令(带有匹配的参数)。

在我的 debian 中,我可以使用切换开关切换显示的命令c(从顶部开始并点击c直到它显示整个命令)

因为我单独ps使用参数-ef(but ) 应该适用于这种情况。-f

您可能想阅读和的man ps输出man top

于 2012-07-25T16:10:03.810 回答
1

可以使用ptree | grep java或获取信息ptree | grep MyMainClass

它列出了正在执行的进程树以及正在其中运行的命令,例如:

13456 克什
    123476 java -cp java -cp /classpath/fullpath myPackage.component.MyMainClass /full/properties/path/myMainClassProperties.properties

第一行是一个 shell 脚本,在其中(下一行)调用 java jar。这适用于 Solaris 9。

感谢@Angelo-Neuschitzer 的提醒。

于 2012-07-25T19:59:33.177 回答