2002-03-20 12:13:21

by Denis Vlasenko

[permalink] [raw]
Subject: [PATCH] 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.
--
vda


--- linux-2.4.18/drivers/char/tty_io.c.orig Fri Jan 25 15:49:44 2002
+++ new/drivers/char/tty_io.c Tue Mar 19 08:28:27 2002
@@ -1847,6 +1847,9 @@
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;
}
@@ -1857,6 +1860,9 @@
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;
}