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

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


当前回答

在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输出换行符。

而不是使用多个命令来编辑流,只需使用一个- tr将一个字符转换为另一个字符:

tr '\0' ' ' </proc/<pid>/cmdline

ps -eo pid,args打印pid和完整的命令行。

在Solaris

     ps -eo pid,comm

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

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

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

程序启动进程。

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