很容易在unix中获得前一个过程的PID -
echo $!
但是,假设我通过Java执行unix命令 -
Process process=Runtime.getRuntime().exec("myScript.sh");
现在,我现在如何通过Java获取“myScript.sh”的 PID ??
e.g.-
在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”。
p.s.-脚本也将从Java执行,而不是从shell执行。
答案 0 :(得分:0)
不确定这是否有效;
that process(Process process=Runtime.getRuntime().exec("myScript.sh"))
是一个java.lang.UNIXProcess,它有一个字段pid;使用反射来获取值