gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:57 26 4
gpt4 key购买 nike

我在 linux 上工作。

在给定正在运行的程序的 PID 的情况下,是否有任何方法可以获取用户定义的程序名称?

我要输出的是程序名,不是进程名。

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

有一些命令可以满足部分需求,例如:

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

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

最佳答案

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

如果您只需要不带参数的命令:

$ ps -o command 12345 |awk 'NR>1 { print $1 }'
sleep

(注意:这不适用于名称中带有空格的命令。)

关于linux - 如何使用正在运行的程序的 PID 获取实际的程序名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44781021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com