linux-c-programming.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Matthew Studley" <matthew.studley@uwe.ac.uk>
To: linux-c-programming@vger.kernel.org
Subject: Re: what causes SIGTERMs?
Date: Wed, 9 Jul 2003 16:36:53 +0100	[thread overview]
Message-ID: <012101c3462f$ec43a810$caba0ba4@uwe.ac.uk> (raw)
In-Reply-To: 16138.54505.701672.164306@cerise.nosuchdomain.co.uk

Hi all

thanks for the help regarding linux signals... very useful!

I have written this little test program, which I then send a SIGTERM using
another process.
(I've been testing this under the current stable release of Debian)

I notice that, while siginfo_t.si_signo seems to have a meaningful value,
all other fields e.g. si_pid are ZERO !

Does anybody have any ideas about this?

cheers Matt

============================================


#include <signal.h>
#include <stdio.h>

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void myHandler(int i, siginfo_t *info, void *v){
  printf("i = %d\n", i);
  printf("signo is %d\n", info->si_signo);
  printf("calling pid is %d\n", info->si_pid);
  printf("calling uid is %d\n", info->si_uid);
  printf("errno : %d\n", info->si_errno);
  printf("code : %d\n", info->si_code);
  fflush(stdout);
}
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
int main(void){
  int i;
  struct sigaction mySigaction;

  mySigaction.sa_sigaction = (myHandler);
  sigemptyset (&mySigaction.sa_mask);
  mySigaction.sa_flags = SA_SIGINFO;      //SA_RESTART | SA_SIGINFO;
  if(sigaction(SIGTERM, &mySigaction, NULL) < 0) {
  perror("ERROR: registering Handler Function\n");
  exit(1);
  }

  while(1){
    // do nothing.
  }
}
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

========
>
> Matthew Studley wrote:
>
> > I wonder whether you could help me?  I have a problem; I'm running an
> > application I've written in C under Slackware 7.1  Occasionally it
receives
> > a SIGTERM.
> >
> > * In what circumstances do processes get sent a SIGTERM?
>
> If something raises it with kill(). Note that SIGTERM is the default
> signal sent by the kill and killall commands.
>
> > * Am I correct that this is unlikely to be issued in response to a bug
in my
> > code?
>
> Correct. SIGTERM isn't sent synchronously (i.e. in response to the
> actions of the process which receives it).
>
> > * How can I find which process is issuing the SIGTERM against my code?
>
> Install a signal handler using sigaction() with the SA_SIGINFO flag;
> the sending process ID will be in the si_pid field of the siginfo_t
> structure. Other fields of that structure may also contain useful
> information.
>
> --
> Glynn Clements <glynn.clements@virgin.net>
>
>


  reply	other threads:[~2003-07-09 15:36 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-08 13:17 what causes SIGTERMs? Matthew Studley
2003-07-08 13:26 ` Francis Lau
2003-07-08 14:27 ` Glynn Clements
2003-07-09 15:36   ` Matthew Studley [this message]
2003-07-10  2:12     ` Glynn Clements
2003-07-10  9:50       ` linking at run time John T. Williams
2003-07-10  7:18         ` nanakos
2003-07-10  8:34         ` Mohan Rao A. J.
2003-07-11  9:51         ` Progga
2003-07-22 14:54     ` what causes SIGTERMs? Matthew Studley
2003-07-22 15:11       ` Jan-Benedict Glaw
2003-07-22 20:47         ` Glynn Clements
  -- strict thread matches above, loose matches on Subject: below --
2003-07-09 19:16 Jad Saklawi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='012101c3462f$ec43a810$caba0ba4@uwe.ac.uk' \
    --to=matthew.studley@uwe.ac.uk \
    --cc=linux-c-programming@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).