如何找到并杀死Linux数据中心服务器上的僵尸进程?

译文
安全 网站安全 Linux
僵尸进程可能表明有软件问题。因此,某个进程成为僵尸进程时,你要知道该怎么做。

【51CTO.com快译】Linux进程经常误入歧途,什么都不做,甚至不耗用CPU周期。虽然僵尸进程不像运行中的流氓应用程序那样占用宝贵资源,但可能会构成威胁。如何构成威胁?某个进程成为僵尸进程时,它保留其进程ID(PID)。由于Linux系统的PID数量有限(不过数量很大),如果足够的PID沦为僵尸,其他进程就无法启动。

[[264693]]

发生这种情况的可能性非常小。然而更重要的是,僵尸进程表明应用程序出现了岔子,某个程序中可能存在着错误。不应容忍数据中心软件上的错误,需要加以解决。你可能需要检查并杀死僵尸进程,才能解决问题。

因此,某个进程成为僵尸进程时,你怎么做?你要找到并杀死那些僵尸进程。下面教你怎么做。

找出僵尸进程

首先要做的是找出僵尸进程。幸好,由于ps命令,这很简单。通过grep显示ps命令的输出,列出STAT是Z(代表僵尸)的任何进程。打开终端窗口,执行下列命令:

  1. ps aux | grep 'Z' 

上述命令的输出将列出输出中包含Z的任何进程(图A)。

图A

如你所见,许多运行中的进程呈僵尸状态。该命令还将列出输出中包含字母Z的任何进程,因此你要忽略STAT列中没有Z的任何进程。

杀死僵尸进程

我们想要使用kill命令来终结那些僵尸进程。命令的输出将包括所有僵尸进程的PID,因此想终结其中一个,只要执行命令:

  1. kill PID 

其中PID是相关进程的进程ID。因此,如果你想终终结沦为僵尸的thunderbird进程(其PID是20589),命令是:

  1. kill 20589 

就是这样。

你完全可以编写一个bash脚本来自动处理这项任务,不过可能会杀死必要进程。由于存在这个风险,我总是建议你手动处理此任务。考虑到我们面对的是生产级数据中心服务器(不过我在桌面系统上进行了演示),尤其应该这样。

如果你发现服务和应用程序崩溃,应该检查有无僵尸进程,并终结它们。一旦你知道了哪些进程是僵尸进程,应提交错误报告,或者联系并告知开发人员(如果应用程序常常崩溃,更应如此)。

原文标题:How to find and kill zombie processes on your Linux data center servers,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:赵宁宁 来源: 51CTO
相关推荐

2019-05-29 14:19:11

网络安全网络安全技术周刊

2019-03-08 09:56:09

服务器监控数据中心

2020-06-01 10:51:54

数据中心IT技术

2017-05-28 09:00:23

数据中心服务器超融合

2022-11-16 09:49:28

数据中心服务器

2015-11-06 14:56:49

数据中心服务器节能

2024-01-10 07:51:02

数据中心服务器机架

2011-07-27 14:41:26

数据中心服务器云计算

2013-04-24 09:07:22

GoogleLinux数据中心

2012-06-01 09:48:51

数据中心服务器定制化

2018-05-28 10:32:38

数据中心服务器布线

2009-02-09 17:58:00

数据中心服务器机柜

2018-05-18 08:30:35

数据中心服务器机架

2017-12-15 09:40:47

Linux僵尸进程

2021-11-01 12:13:53

Linux僵尸进程

2021-10-25 12:23:06

Linux僵尸进程

2012-06-11 15:03:46

Linux数据中心

2024-02-05 18:23:23

父进程应用程序程序

2011-11-04 10:03:36

数据中心服务器思科

2009-07-16 14:09:50

刀片机架数据中心
点赞
收藏

51CTO技术栈公众号