Я пишу плагин, чтобы автоматически выделять текстовые строки при посещении веб-сайта. Это похоже на результаты поиска, но автоматически и для многих слов; он может быть использован для людей с аллергией, чтобы слова действительно выделялись, например, когда они просматривают сайт пищи.
Но у меня проблема. Когда я пытаюсь закрыть пустое свежее окно FF, он каким-то образом блокирует весь процесс. Когда я убиваю процесс, все окна исчезают, но процесс Firefox остается в живых (родительский PID равен 1, не прослушивает никаких сигналов, имеет много ресурсов, открытых, все еще ест процессор, но не сдвинется с места).
Итак, два вопроса:
-
Как вообще возможно, чтобы процесс не прослушивал kill -9 (ни как пользователь, ни как root)?
-
Есть ли что-нибудь, что я могу сделать, но перезагрузка?
[EDIT] Это нарушающий процесс:
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 (openSUSE 11.1). После отключения плагина FF снова стала быстрой и счастливой лисицей.