如何获取 UNIX 进程的命令行?

如何获取 UNIX 进程的命令行?

是否可以获取用于调用 Mac OS X 上的进程的命令行?

答案1

ps ax显示所有正在运行的进程的命令行;您可以 grep 查找所需的 pid。

答案2

做:

~$ ps ax | grep "ntp"
   57   ??  Ss     0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
 3104 s000  S+     0:00.00 grep ntp

按照你的需要做(将 ntp 更改为你感兴趣的程序)?这通常会给我正在运行的进程的命令行参数(例如,我用它来检查 Launchd 在运行系统守护程序时使用了什么)。

答案3

cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'

$PROCESSNUMBER尽管它是 Linux 特有的,但它直接从内核(部分)获取进程编号的命令行,并通过将\0/proc/$PROCESSNUMBER/cmdline翻译(替换)为换行符(\n)将每个参数放在单独的行上,使其可读。tr -token

ps -ef仅当您在 $PROCESSNUMBER 部分中放入一个正在运行的进程的实际进程号(您可以通过运行命令找到一个)时,此行才有效!

相关内容