gpt4 book ai didi

linux - Linux上进程的kill -9怎么可能没有效果?

转载 作者:IT老高 更新时间:2023-10-28 12:30:25 27 4
gpt4 key购买 nike

我正在编写一个插件来在您访问网站时自动突出显示文本字符串。就像高亮搜索结果一样,但是是自动的,并且适用于许多单词;它可以用于过敏症患者,让文字真正脱颖而出,例如,当他们浏览美食网站时。

但是我有问题。当我尝试关闭一个空的、新鲜的 FF 窗口时,它会以某种方式阻止整个过程。当我杀死进程时,所有的窗口都消失了,但 Firefox 进程仍然活着(父 PID 为 1,不听任何信号,有很多资源打开,仍然吃 CPU,但不会让步)。

那么两个问题:

  1. 一个进程怎么可能不听kill -9(既不是用户也不是root)?

  2. 除了重启我还能做什么?

[编辑]这是有问题的过程:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
digulla 16688 4.3 4.2 784476 345464 pts/14 D Mar28 75:02 /opt/firefox-3.0/firefox-bin

ps -ef | 相同grep firefox

UID        PID  PPID  C STIME TTY          TIME CMD
digulla 16688 1 4 Mar28 pts/14 01:15:02 /opt/firefox-3.0/firefox-bin

这是唯一剩下的过程。如您所见,它不是僵尸,它在奔跑!它不听kill -9,无论我是按PID还是名称杀死!如果我尝试用 strace 连接,那么 strace 也会挂起并且无法被杀死。也没有输出。我的猜测是 FF 在某些内核例程中挂起,但是哪个?

[EDIT2] 基于 sigjuice 的反馈:

ps axopid,comm,wchan

可以显示一个进程卡在哪个内核例程中。就我而言,有问题的插件是 Beagle Indexer (openSUSE 11.1)。禁用插件后,FF 又是一只又快又快乐的狐狸了。

最佳答案

如对 OP 的注释中所述,D 的进程状态 (STAT) 表示进程处于“不间断 sleep ”状态。在现实世界中,这通常意味着它正在等待 I/O,并且在 I/O 操作完成之前不能/不会做任何事情(包括死亡)。

处于 D 状态的进程通常只会在操作完成之前存在几分之一秒,然后它们会返回到 R/S。根据我的经验,如果一个进程卡在 D 中,它通常会尝试与无法访问的 NFS 或其他远程文件系统进行通信,尝试访问发生故障的硬盘驱动器,或者使用某些硬件通过一个不稳定的设备驱动程序。在这种情况下,恢复并允许进程终止的唯一方法是让 fs/驱动器/硬件备份并运行,以便 I/O 可以完成,或者放弃并重新启动系统。在 NFS 的特定情况下,挂载也可能最终超时并从 I/O 操作返回(带有失败代码),但这取决于挂载选项,并且 NFS 挂载设置为永远等待是很常见的.

这与僵尸进程不同,僵尸进程的状态为Z

关于linux - Linux上进程的kill -9怎么可能没有效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com