我正在编写一个插件,在你访问网站时自动突出显示文本字符串.它就像突出显示的搜索结果一样,但对于许多单词来说是自动的;它可以用于过敏患者,使单词真正脱颖而出,例如,当他们浏览食品网站时.
但我有问题.当我试图关闭一个空的、新的FF窗口时,它会以某种方式阻止整个过程.当我关闭进程时,所有的窗口都消失了,但Firefox进程保持活动状态(父PID为1,不监听任何信号,有大量资源打开,仍然占用CPU,但不会移动).
所以有两个问题:
一个进程怎么可能不监听kill-9(既不是用户也不是根用户)?
除了重启,我还能做什么吗?
[编辑]这是一个令人不快的过程:
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还是名字杀人!如果我try 连接strace
,那么strace
也会挂起,不会被杀死.也没有输出.我猜FF挂在某个内核 routine 中,但哪个呢?
[EDIT2]根据sigjuice的反馈:
ps axopid,comm,wchan
可以显示进程挂起的内核 routine .在我的例子中,有问题的插件是Beagle Indexer(openSUSE 11.1).禁用插件后,FF又成了一只快活快乐的狐狸.