4

在unix中很容易得到前一个进程的PID-

echo $!

但是,假设我通过 Java 执行一个 unix 命令-

Process process=Runtime.getRuntime().exec("myScript.sh");

现在,我现在如何通过 Java获取“myScript.sh”的PID

例如- 在 Unix 中,我们会做- 1. 执行myScript.sh 2. 执行ps -ef | grep -i "myScript.sh" | grep -v grep

输出会像 -

     UID   PID  PPID   C    STIME TTY         TIME CMD
userprod 11764 28386   0 05:57:45 pts/3       0:01 myScript.sh

通过 Java需要的是 PID,在这种情况下是“11764”。

ps-脚本也将从 Java 执行,而不是从 shell。

4

1 回答 1

0

不确定这是否有效;

that process(Process process=Runtime.getRuntime().exec("myScript.sh"))

是一个 java.lang.UNIXProcess 并且它有一个字段 pid;使用反射获取值

于 2013-04-02T10:56:40.067 回答