[Bug 924301] Re: normal exit TERM is not working every time

Steve Langasek steve.langasek at canonical.com
Mon Feb 6 05:52:30 UTC 2012


On Sat, Feb 04, 2012 at 11:16:25AM -0000, Sworddragon wrote:
> >If a job marked 'normal TERM' is respawning when you send it kill
> > -TERM, then the process is probably *not* dying as a result of the
> > signal - it probably instead has a signal handler and is exiting with
> > some different exit status.

> Shouldn't upstart ignore such a behaviour of a signal handler? The
> application got still a SIGTERM independent of what it returns.

If this is actually the issue, upstart has no means of properly ignoring
such behavior.  There is a semantically significant difference in Unix
between "died with SIGTERM" and "received SIGTERM, then exited"; and if this
is actually what's happening, the exit code in the shell *won't* be 143.

> >Try running the command from the command line, killing it with SIGTERM,
> > and checking what you actually get as an exit status.

> "sleep 60" and "java -jar /usr/local/bin/minecraft_server.jar nogui" are
> returning 143 if they close because of a SIGTERM.

Ok, my analysis was wrong then.  I'm not sure why upstart's behavior is
different for java - it certainly shouldn't be based on the above.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to upstart in Ubuntu.
https://bugs.launchpad.net/bugs/924301

Title:
  normal exit TERM is not working every time

Status in “upstart” package in Ubuntu:
  New

Bug description:
  I'm using Ubuntu 12.04 dev with upstart 1.4-0ubuntu4. I have written a
  script which uses the respawn stanza and TERM as a normal exit. But on
  some commands the process will respawn and on other commands not (like
  expected) if I use a SIGTERM on the process. Here are 2 examples:

  normal exit 0 KILL TERM
  respawn
  respawn limit 2 60
  exec sleep 60

  A SIGTERM on the "sleep 60" process will not cause it to respawn.

  normal exit 0 KILL TERM
  respawn
  respawn limit 2 60
  exec java -jar /usr/local/bin/minecraft_server.jar nogui

  A SIGTERM on the java process will cause it to respawn. I don't know
  why it is respawning. It is the only process that is created and a
  SIGTERM shouldn't cause it to respawn.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/924301/+subscriptions




More information about the foundations-bugs mailing list