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

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


当前回答

如果你想获得一个尽可能长的(不确定有什么限制),类似于Solaris的pargs,你可以在Linux和OSX上使用这个:

ps -ww -o pid,command [-p <pid> ... ]

其他回答

这样就可以了:

xargs -0 < /proc/<pid>/cmdline

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

在Linux上

cat /proc/<pid>/cmdline

输出进程的命令行<pid>(命令包括参数)每条记录以NUL字符结束。

Bash Shell示例:

$ mapfile -d '' args < /proc/$$/cmdline
$ echo "#${#args[@]}:" "${args[@]}"
#1: /bin/bash
$ echo $BASH_VERSION
5.0.17(1)-release

Linux中用空格打印/proc/PID/cmdline的另一个变体是:

cat -v /proc/PID/cmdline | sed 's/\^@/\ /g' && echo

这样,cat将NULL字符打印为^@,然后使用sed将它们替换为空格;Echo输出换行符。

在Linux终端上尝试ps -n。这将显示:

1.所有正在运行的进程,它们的命令行和pid

程序启动进程。

之后,您将知道该终止哪个进程

在Solaris

     ps -eo pid,comm

类似的可以用于Unix类系统。