Question on strace
    Jan Kratochvil 
    jan.kratochvil at redhat.com
       
    Wed Jun 25 13:04:55 UTC 2008
    
    
  
Hi Satish,
On Wed, 25 Jun 2008 14:48:51 +0200, Satish Kumar Tedla wrote:
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
please send text/plain mails here.
> I have an issue where my process is getting killed due to a SIGTERM issued by
> an unknown process.  Is there a way to trace the process which is sending
> SIGTERM to my process?
You cannot use strace globally on all the processes - I would use systemtap for
this purpose.  Attached a script for it - it traces all the kill(2)s on the
system.  There may be some better one supplied in the systemtap examples.
# stap /tmp/kill.stp 
START
...
bash (4599): kill (24688, sig 15) = 0
Regards,
Jan
-------------- next part --------------
probe begin
{
	print ("START\n")
}
global kill_enter
probe kernel.function("sys_kill")
{
	kill_enter = sprintf ("%s (%d): kill (%d, sig %d)", execname (), pid (), $pid, $sig);
}
probe kernel.function("sys_kill").return
{
	if (kill_enter != "")
		printf ("%s = %s\n", kill_enter, returnstr (1))
}
global tkill_enter
probe kernel.function("sys_tkill")
{
	tkill_enter = sprintf ("%s (%d): tkill (%d, sig %d)", execname (), pid (), $pid, $sig);
}
probe kernel.function("sys_tkill").return
{
	if (tkill_enter != "")
		printf ("%s = %s\n", tkill_enter, returnstr (1))
}
global tgkill_enter
probe kernel.function("sys_tgkill")
{
	tgkill_enter = sprintf ("%s (%d): tgkill (tgid %d, tid %d, sig %d)", execname (), pid (), $tgid, $pid, $sig);
}
probe kernel.function("sys_tgkill").return
{
	if (tgkill_enter != "")
		printf ("%s = %s\n", tgkill_enter, returnstr (1))
}
    
    
More information about the Strace-devel
mailing list