我正在 macOS 上与我们一起监控流程
$ ps -f
UID PID PPID C STIME TTY TIME CMD
501 367 366 0 Sun06AM ttys000 0:00.21 -bash
501 1814 1812 0 Sun06AM ttys001 0:00.29 -bash
501 36857 1814 0 6:41PM ttys001 0:00.00 head -n -2
501 36858 1814 0 6:41PM ttys001 0:00.00 sed 3d
501 9616 9612 0 Sun10AM ttys002 0:02.09 -bash
501 36264 36262 0 6:23PM ttys003 0:00.16 -bash
当我尝试时
$ ps --forest
ps: illegal option -- -
它报告非法选项
手册统计版本如果
March 20, 2005 BSD
当我切换到centos时
[root@iz2ze9wve43n2nyuvmsfx5z ~]# ps --forest
PID TTY TIME CMD
16683 pts/1 00:00:00 bash
17853 pts/1 00:00:00 \_ bash
17865 pts/1 00:00:00 \_ bash
17879 pts/1 00:00:00 \_ ps
它带有强大的--forest。
它的版本是2014年7月
如何更新过时的 ps 或安装新的 ps?
答案1
使用 macOS 上的 Homebrew,您可以安装pstree
类似的功能。
在评论中,您说您已经尝试过此操作,但它提供了太多信息。您应该阅读pstree
手册以了解如何使用该工具。请注意,这pstree
在 Linux 上也可用。
获取当前 shell 进程的进程树:
desktop:~ myself$ pstree -p $$
-+= 00001 root /sbin/launchd
\-+= 00985 myself /Applications/iTerm.app/Contents/MacOS/iTerm2
\-+= 00989 myself /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp myself
\-+= 00990 root login -fp myself
\-+= 00991 myself -bash
\-+= 51939 myself pstree -p 991
\--- 51940 root ps -axwwo user,pid,ppid,pgid,command
据我所知, Linuxps
实用程序无法安装在 macOS 上,可能是因为它大量使用了 Linux 特定的/proc
文件系统。