vda@port.imtp.ilyichevsk.odessa.ua: SAK messages:
I use SAK from time to time when I have problems with hung processes.
Sometimes it is difficult to figure out what was being killed and why.
For example, Midnight Commander contains a bug: it holds fd#3 open to
the tty. It prevented me from daemonizing processes (like X) - they
died upon SAK.
This little patch makes SAK tell whom and why it kills. Tested.
(Included in 2.4)
for_each_task(p) {
if ((p->tty == tty) ||
((session > 0) && (p->session == session))) {
+ printk(KERN_NOTICE "SAK: killed process %d"
+ " (%s): p->session==tty->session\n",
+ p->pid, p->comm);
send_sig(SIGKILL, p, 1);
continue;
}
filp = fcheck_files(p->files, i);
if (filp && (filp->f_op == &tty_fops) &&
(filp->private_data == tty)) {
+ printk(KERN_NOTICE "SAK: killed process %d"
+ " (%s): fd#%d opened to the tty\n",
+ p->pid, p->comm, i);
send_sig(SIGKILL, p, 1);
break;
}