我正在解析输出,ps
并且不需要父进程的所有子进程
/usr/bin/postgres -D /var/lib/pgsql/data -p 1488
\_ postgres: logger process
\_ postgres: checkpointer process
\_ postgres: writer process
\_ postgres: wal writer process
\_ postgres: autovacuum launcher process
\_ postgres: stats collector process
有没有办法只显示
/usr/bin/postgres -D /var/lib/pgsql/data -p 1488
ps
除了仪器之外还有其他方法可以列出所有正在运行的父进程吗?
要使用该命令仅列出没有子进程的父进程
ps
,您可以使用该--ppid
选项和标志-o
来格式化输出:此命令将仅列出父进程 ID (PPID) 为 2(通常是 init 进程的 PID)的父进程。 -o pid,cmd 选项指定仅应显示 PID 和命令列。另一种方法是您可以使用 pgrep 和 -P 选项来根据其父 PID 列出进程:
该命令将列出父 PID 为 2 的进程的 PID。如果您想从输出中排除 ps 命令本身,您可以添加 grep -v 将其过滤掉:
有很多方法可以做到这一点,但这些是最简单的。