java - 从 Java 中查找 unix 命令 PID

标签 java unix process pid

<分区>

在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”。

p.s.- 脚本也将从 Java 中执行,而不是从 shell 中执行。

最佳答案

不确定这是否有效;

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

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

关于java - 从 Java 中查找 unix 命令 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762233/

相关文章:

file - 检查文件是否从另一个进程打开

java - 如何在 opencv for android 中将 ArrayList<Mat> 从 Java 传递到 native 端(NDK)

linux - 如何使用 shell 脚本从 5 个数字中获取最大数字

java - 从 java 杀死 linux 进程在 Runnable JAR 中不起作用

c - 哪个标准定义了 "sysconf()"选项的值,例如 "_SC_MONOTONIC_CLOCK"?

c++ - 使用信号中止功能实现

android - 将应用程序上下文保存到 Android 中的静态变量是否安全?

java - 进程生成器不使用 wmic 打印控制台输出

java中上传和存储图像的Java解决方案

java - 内存会影响性能还是很多 if 条件会影响?