Linux:如何find守护进程和僵尸进程的列表

我试图检查谷歌,但我找不到有关实际问题的许多信息。

如何获得僵尸进程和守护进程的综合列表? 我如何在不同的操作系统上执行此操作。 Linux呢? AIX? 视窗?

我相信,基于PID,我们不能确定过程的types。 通过terminal运行也可能没有帮助。

试试这个。

 ps axo pid,ppid,pgrp,tty,tpgid,sess,comm |awk '$2==1' |awk '$1==$3' 

在上面的命令中,我使用了守护进程的属性来从Linux中所有现有的进程中过滤掉它们。

守护进程的父节点始终是Init,因此检查ppid 1.守护进程通常不与任何终端关联,因此我们有'?' 在tty下。 守护进程的process-id和process-group-id通常是相同的守护进程的session-id与进程id相同。

在Linux上使用GNU ps:

[

 $ ps --version procps-ng version 3.3.3 

]

植物大战僵尸:

 ps -lA | grep '^. Z' 

会让你所有的僵尸(注意参数是小写'L',即'l'后面跟着'A')。

守护进程:

正如@Barmar所说,没有办法确定守护进程,但是一个进程是守护进程的线索是,它不与任何TTY设备相关联。 “ps -Al”输出的第12列是TTY; 第四个是PID,第十四个是进程名。 因此:

 ps -lA | awk '$12 == "?" {print $4, $14}' 

会得到可能是守护进程的进程; 不保证! 🙂

守护进程由init进程启动,这意味着它们的PPID为1。

因此:

 ps -ef | awk '$3 == 1' 

要获得僵尸和守护进程的列表,只需编写一个psudo字符开发驱动程序,在那里你应该导航槽task_struct和寻找状态