首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将命令行参数传递给unix/linux系统上正在运行的进程?

如何将命令行参数传递给unix/linux系统上正在运行的进程?
EN

Stack Overflow用户
提问于 2009-05-04 20:18:13
回答 10查看 214.1K关注 0票数 217

在SunOS上,有一个pargs命令可以打印传递给正在运行的进程的命令行参数。

在其他Unix环境中是否有类似的命令?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-05-04 20:26:54

有几个选项:

代码语言:javascript
复制
ps -fp <pid>
cat /proc/<pid>/cmdline | sed -e "s/\x00/ /g"; echo

在Linux上的/proc/<pid>上有更多的信息,看看就知道了。

在其他Unixes上,事情可能会有所不同。ps命令可以在任何地方工作,/proc的东西是特定于操作系统的。例如,在AIX上,/proc中没有cmdline

票数 331
EN

Stack Overflow用户

发布于 2012-11-15 22:12:12

这将会起到作用:

代码语言:javascript
复制
xargs -0 < /proc/<pid>/cmdline

如果没有xargs,参数之间将不会有空格,因为它们已被转换为NULs。

票数 64
EN

Stack Overflow用户

发布于 2012-11-06 13:40:10

完整的命令行

对于Linux和Unix系统,您可以使用ps -ef | grep process_name获取完整的命令行。

在SunOS系统上,如果希望获得完整的命令行,可以使用

代码语言:javascript
复制
/usr/ucb/ps -auxww | grep -i process_name

要获得完整的命令行,您需要成为超级用户。

参数列表

代码语言:javascript
复制
pargs -a PROCESS_ID

将给出传递给进程的参数的详细列表。它将输出参数数组,如下所示:

代码语言:javascript
复制
argv[o]: first argument
argv[1]: second..
argv[*]: and so on..

我没有在Linux上找到任何类似的命令,但我会使用以下命令来获得类似的输出:

代码语言:javascript
复制
tr '\0' '\n' < /proc/<pid>/environ
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/821837

复制
相关文章

相似问题

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