title: How is it possible that kill -9 for a process on Linux has no effect?
body: <p>I'm writing a plugin to highlight text strings automatically as you visit a web site. It's like the highlight search results but automatic and for many words; it could be used for people with allergies to make words really stand out, for example, when they browse a food site.</p>
  
  <p>But I have problem. When I try to close an empty, fresh FF window, it somehow blocks the whole process. When I kill the process, all the windows vanish, but the Firefox process stays alive (parent PID is 1, doesn't listen to any signals, has lots of resources open, still eats CPU, but won't budge).</p>
  
  <p>So two questions:</p>
  
  <ol>
  <li><p>How is it even possible for a process not to listen to kill -9 (neither as user nor as root)?</p></li>
  <li><p>Is there anything I can do but a reboot?</p></li>
  </ol>
  
  <p>[EDIT] This is the offending process:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Same with <code>ps -ef | grep firefox</code></p>
  
  <pre><code>UID        PID  PPID  C STIME TTY          TIME CMD
  digulla  16688     1  4 Mar28 pts/14   01:15:02 /opt/firefox-3.0/firefox-bin
  </code></pre>
  
  <p>It's the only process left. As you can see, it's not a zombie, it's running! It doesn't listen to kill -9, no matter if I kill by PID or name! If I try to connect with <code>strace</code>, then the <code>strace</code> also hangs and can't be killed. There is no output, either. My guess is that FF hangs in some kernel routine but which?</p>
  
  <p>[EDIT2] Based on feedback by sigjuice: </p>
  
  <pre><code>ps axopid,comm,wchan
  </code></pre>
  
  <p>can show you in which kernel routine a process hangs. In my case, the offending plugin was the Beagle Indexer (openSUSE 11.1). After disabling the plugin, FF was a quick and happy fox again.</p>