Awk 如何检查僵尸进程是否仍在侦听端口?

Awk 如何检查僵尸进程是否仍在侦听端口?,awk,grep,netstat,Awk,Grep,Netstat,我使用以下脚本跟踪正在运行的僵尸进程: ps aux | awk '{ print $8 " " $2 }' | grep -w Z 我还使用nestat-tulpn | grep,检查特定端口是否繁忙 我试图将第一个查询的输出传递给第二个查询,以检查僵尸进程是否正在侦听任何端口?有可能吗?正如Brad Allred所评论的,僵尸进程不包含任何系统资源。它无法侦听端口、保存文件描述符或用户空间内存。内核中只有很少的信息,比如返回状态 然而,TCP有一个陷阱,它与僵尸程序无关。如果连接处于等待关

我使用以下脚本跟踪正在运行的僵尸进程:

ps aux | awk '{ print $8 " " $2 }' | grep -w Z
我还使用
nestat-tulpn | grep
,检查特定端口是否繁忙


我试图将第一个查询的输出传递给第二个查询,以检查僵尸进程是否正在侦听任何端口?有可能吗?

正如Brad Allred所评论的,僵尸进程不包含任何系统资源。它无法侦听端口、保存文件描述符或用户空间内存。内核中只有很少的信息,比如返回状态


然而,TCP有一个陷阱,它与僵尸程序无关。如果连接处于等待关闭状态(可能需要几分钟),则新套接字无法在同一端口上侦听。即使保存前一个套接字的进程已经死了,也会发生这种情况。

我认为当一个进程变成“僵尸”时,分配给它的所有东西都被释放了。我以为僵尸只是进程表中等待收割的一个条目……您可以尝试使用
lsof
查看任何具有开放(IPv4)套接字的进程:
lsof-i4-a
。我认为吴引用了连接处于等待关闭状态的情况,这正是发生的情况。我想清除一个正在运行的脚本的所有实例,并释放该实例正在使用的所有资源,以便进行干净的重新启动。我想知道是否有一个死进程使tcp端口忙?如果是,我将如何释放该端口,因为侦听它的进程已经停止了?最好显示相关的ps/nestat条目。你看到有什么联系吗?