Slower, Pussycat, Kill, Kill

Originally published in Linux User and Developer #36 (Feb/Mar 2004). License

As we all know, one of the great features of Linux is that it never crashes. Never. Oh no. Perish the thought. Those X-Windows video drivers? Solid as a rock.

In fact, if anything. Linux veers to the other extreme.

Many is the time that a Linux apps does the opposite of dismissively aborting. Instead, it becomes overly interested in what it's doing. So interested, that it tries to invite the rest of your system's processes along for the ride.

"Why would you think of redrawing that Window, or handling those mouse move events?", you hear PID 6786 jockeying its fellow processes. "The real buzz around here is in trying to kick up the java virtual machine sixteen million times a second".

And thus, before you can type "top

" (v-e-r-y s-l-o-w-l-y), we find ourselves with the hardest-working PC in show business. One hundred percent CPU allocation dedicated to one tiny, maniacal process. Unable to do anything, we quickly scale the Richter scale of runaway processes. The otherwise minor program starts demanding more and more system resources. Desktop PCs start bouncing on their rubber feet. The sound of your swapfile thrashing causes tiles to fall from nearby rooves. Soon, uptime load levels are indistinguishable from readings of the ambient temperature of the Sun. Laptops have their little own little China Syndrome, where they melt through you lap and into the earth's core.

Mozilla, or Phoenix, or Firebird, or whatever it's called this release, does this to me a lot. Clearly, my computer has decided that since I spend 95% of my personal CPU time browsing dumb Websites, it should do the same.

I don't care. The truth is, I like to kill.

I now have a little button in my GNOME panel that seeks and destroys runaway browsers. It's linked to script that peruses the process lists, finds things that have "mozilla" in their filename, and kills them. I suspect this is why Mozilla keeps changing its name, in a desperate attempt to escape my assassins. But I'm quicker than it is. I kills them! Kills them dead. Dead, dead, dead. Ahahahahaha! Kill!

Excuse me.

Okay, better now.

It's true, I love the "kill" command. It's such an embodiment of the Linux philosophy of putting the user in control, even when the user is a rampaging maniac. What other operating system lets you murder your own creations with a single command? And with such prejudice, too. Windows and Mac users have their equivalents, I suppose, but they're so fenced off with warnings and stern admonitions. There's no sense of "do what you want in your own home". There's no sense of release, no Dirty Harry catharsis of taking your computer back from the scum that did this.

Now, I know what you're thinking. Did he type "kill -9" or only "-1"? Well, to tell you the truth, in all this excitement, I've kind of lost track myself.

You get the idea.

Talking of feeling lucky, my delightful but borderline psychopathic wife wrote her own process killing script many years ago. (Given that so many murders happen within the family, I suppose I shouldn't be surprised.) Originally it was designed so she could nuke pine, the text-based email client that thinks it's a high-load stress-test.

Of course such a simple program quickly develops extra features, especially if it gets away with murder the first time. Last I heard, the "ppk" (Pine Process Killer) had got a Web interface feature.

With this, random visitors on the Internet could go to her Web page, press a button, and nuke my wife's pine session themselves.

You see? Linux is not only condusive to local killers, it is even amenable to dangerous-looking not-from-around-here motiveless serial killers. That, in my view is so user-friendly as to be downright frightening.

Now this is a responsible publication aimed at children of all ages, so I should post-amble these remarks with an encouragement to kill responsibly.

And I will, really, any minute now.

In the meantime, I'll caution that there are no doubt deep psychological scars that I'm accruing by all this excessive process killing. During the daylight hours, I can justify it to myself. All my killings took place in self-defence, for a start. I realise that a string of senseless self-defence procslaughterings does look a little suspicious, but that's my story and I'm sticking to it.

At night, though, it's a different matter.

At night, the zombie processes come.

I've read every Unix manual entry there is on zombie processes, so I know the facts. They're not real. They're just the meaningless artifacts of processes whose parents were killed before their time. And then those processes in turn died before leaving a final message to their parents.

They don't take up any memory to speak of. They don't do any harm. They just sit in your "ps" list, with "(zombie)" helpfully after their names. They don't take up CPU space or mess with your machine, like their parents did.

The parents they watched you kill.

No, they just sit there, in turn, watching.

And of course, as the all the manuals say, you can't kill -9 a zombie.

You cannot, they say, kill that which does not live.

Oh God. What have I done?