如何使用正在运行的程序的PID获取实际程序名称?

时间:2017-06-27 13:03:19

标签: linux unix command-line process linux-kernel

我正在使用linux。

在给定正在运行的程序的PID的情况下,有没有办法获取用户定义的程序名?

我想输出程序名称,而不是进程名称。

例如:我有一个名为 stackoverflow.java 的java应用程序。现在,进程名称将由系统决定,该系统可能不同,但程序名称为 stackoverflow.java 。所以输出应该是程序名,只给出正在运行的程序的PID。

有些命令可以满足部分需求:

cat / proc /" PID" / cmdline - > 这将给出命令行参数,该参数使用给定的" PID"创建该进程。但是如果我们有不同编程语言的各种程序,那么运行该程序的命令格式就不一样了。那么在这种情况下,如何从这个命令中提取确切的程序名?

readlink -f / proc /" PID" / exe - >这将给出与给定的" PID"相关的可执行文件名。但是有些进程没有可执行文件。在这种情况下,它不会返回任何东西。

1 个答案:

答案 0 :(得分:0)

const mychart = () => { let stop = false; const chart = (selection) => { function tick(){ console.log("tick"); } return tick; }; chart.addToChart = (value) => { console.log("addToChart"); return chart; }; chart.stop = () => { return stop = true; } return chart; } const a = mychart(); const tick = a(); tick(); //logs tick a.addToChart(); //logs "addToChart" 实用程序执行此操作。例如,

ps

以下是如何只需要命令:

$ ps 12345
  PID TTY      STAT   TIME COMMAND
12345 pts/1    S      0:00 sleep 20

所以你只需要删除第一行:

$ ps -o command 12345
COMMAND
sleep 20

如果你只想要没有参数的命令:

$ ps -o command 12345 |awk 'NR>1'
sleep 20

(注意:这对于名称中带空格的命令不起作用。)