首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用运行程序的PID来获得实际的程序名?

问如何使用运行程序的PID来获得实际的程序名?
EN

Stack Overflow用户
提问于 2017-06-27 13:03:18
回答 1查看 1.6K关注 0票数 1

我正在做linux的工作。

,考虑到正在运行的程序的PID,有什么方法可以获得用户定义的程序名吗?

我想输出的是程序名,而不是进程名.

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

有一些命令正在满足部分需求,例如:

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

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

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 23:20:19

ps实用程序可以做到这一点。例如,

代码语言:javascript
复制
$ ps 12345
  PID TTY      STAT   TIME COMMAND
12345 pts/1    S      0:00 sleep 20

下面是如何只要求命令:

代码语言:javascript
复制
$ ps -o command 12345
COMMAND
sleep 20

因此,您只需删除第一行:

代码语言:javascript
复制
$ ps -o command 12345 |awk 'NR>1'
sleep 20

如果只希望命令没有参数:

代码语言:javascript
复制
$ ps -o command 12345 |awk 'NR>1 { print $1 }'
sleep

(注意:对于在命令名中包含空格的命令,这是行不通的。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44781021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档