Linux中如何终止僵尸进程
12 个月前
· 来自专栏
程序员
这是一个和大纪元一样古老的故事。自从有了 C 和 Unix,以及(后来的)Linux,我们就有了僵尸。具体来说,有些进程被标记为僵尸进程。被一些人误解,被一些人忽视,对我们许多人试图扼杀这些进程的努力所免疫,没有取得多大的成功。为什么会这样?
Linux 中的进程是什么?
这一切都起于 Linux 中的程序被执行。当它执行的时候,其运行的实力就被称为进程。你可以使用 ps 命令来查看 Linux 环境中所有的进程。
$ ps -ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /usr/lib/systemd/systemd rhgb --switched-root --sys
2 ? S 0:00 [kthreadd]
3 ? I< 0:00 [rcu_gp]
4 ? I< 0:00 [rcu_par_gp]
有时候,一个进程启动另一个进程,这样第一个进程便成为第二个进程的父进程。pstree 命令是一个很好用的工具,它可以让你查看系统中进程的“谱系”。
$ pstree -psn
systemd(1)─┬─systemd-journal(952)
├─systemd-udevd(963)
├─systemd-oomd(1137)
├─systemd-resolve(1138)
├─systemd-userdbd(1139)─┬─systemd-userwor(12707)