I'm trying to get to the bottom of why the shutdown process stops and
locks up with OSR on glusterfs, so I made a quick and dirty modification
to killall5.c from the SysVinit package in prod-4.5 compiled it and
replaced the one in /usr/comoonics/sbin/.
The mod is as follows:
--- killall5.c 2009-12-25 18:49:35.000000000 +0000
+++ killall5.c.new 2009-12-25 18:49:22.000000000 +0000
@@ -711,6 +711,7 @@
if (TEST == 1) {
printf("pid: %i, sid: %i, name:
%s\n", p->pid, p->sid, p->statname);
} else {
+ printf("killing statname: %s\n",
p->statname);
kill(p->pid, sig);
}
}
I also changed the halt script so it doesn't use the "action" function
which could be obscuring the command output.
Now, from what I can see, this should print the statname of each process
before it is killed, or print the statname of the process if it is not
being killed due to being excluded. Either way, something should come up
on stdout, right?
Except it doesn't. I've got trace code in init.d/halt that demonstrates
that killall5 gets run but no output comes out. The whole process stops
at the point killall5 is run, and no output comes out. Am I missing
something really obvious here?
If I can get this to work I'll add this as optional output when a -v
(for verbose) option is specified to killall5. But before there's any
point to that, I need to figure out why nothing is coming out from the
printf() statements. Any ideas?
Thanks.
Gordan
|