SIGTERM failing in AIX

I have 2 AIX 6.1 systems running on PowerPCs - production and .. .everything else. :stuck_out_tongue: . Until the installation of a TLS certificate in an application, some copying of files ("cloning an environment") and upgrading a listener, sending a kill -15 worked on any script/application, so long as we were using the same user.

Specifically, we start listeners, which launches a java process in this application (Ellucian Colleague) and it creates a "stopdmi" script which issues a kill -15 <Listener'sPID>. However, that's no longer functioning.

I went to our other system and created the following simple script:

#!/bin/ksh

trap "echo 'Received Kill signal'; exit" SIGHUP SIGINT SIGTERM

while true;do
    echo "waiting..."
done

chmod 700 that and run it as some user - let's say "jim". I see a screenful of "waiting" now. Open up another terminal and log in as Jim. Do a kill <scriptPID> - no response. Do a kill -9 and it works just fine (considering it's a SIGKILL... not good on a production java app).

I've tried this on CentOS 7.x and FreeBSD (sorry -whichever version FreeNAS 9.x is running on) and it behaves as I expect - the script stops.

The same issue happens if I take the trap statement out on AIX - only kill -9 will terminate the process.

Can anyone clue me in to what is going on? Is there some reason AIX doesn't behave like other *nix systems?

Thank you in advance for any help you can give me...

As far as I am aware there is no problem with SIGTERM on AIX compared to any other other standards compliant UNIX. Any signal can optionally be blocked, except SIGSTOP and SIGKILL.

There has to be a login/startup/setup script that is blocking SIGTERM. I don't have magic suggestions. But what you describe is not standard out of the box behavior.

I would start by checking the usual suspects like profile scripts and login scripts.
Other regulars here on the forums have a lot of detailed AIX knowledge, hopefully they have an explanation or a strategy to help.

K.. I found the issue. 'Twas a trap "" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Now. Can anyone explain to me.. WHY someone would do this? Is there any logical purpose to it?

I take it, the question was not (only) rhethorical, yes?

First, why one would try to intercept a non-maskable interrupt like -9 is beyond me - most probably a case of "have not understood the concept of non-maskable". The other signals - well, if you want to trap these (that is - want your program not to do anything whe these signals are received), then this is what you do. I have done similar things on occasion when i wanted a script not to be stoppable by a CTRL-C. Still, i think the occasions where this is desirable are quite limited and in most cases this is a pretty bad idea .

So - there, if this commiserating helps you any.

bakunin

I presume that:

  1. the script that you showed us that you're trying to kill is not the actual code that you're trying to kill,
  2. that you are not the author of the code you're trying to kill (since you didn't know the trap was there), and
  3. that you didn't consult with the author of that script before trying to write code to kill it

.
One obvious reason why someone would add a trap command to ignore signals to a script that is expected to run for a while (i.e., more than a 1 instruction cycle) would be to keep scripts like yours from randomly killing them. Trying to ignore SIGSTOP and SIGKILL produces undefined results, but it is certainly a reasonable first attempt to keep a script running while the author of that script tracks down why their script is being terminated for no obvious reason.

Sorry, but while i could respect that motivation having had to deal for quite some time (my professional "career") with the scripts application providers tend to supply i have to respectfully disagree with you.

Much more common than the motivation "i try to be as circumspect as i can" is the motivation "i cover my backside as good as possible", not to forget the motivation "i make it hard for the sysadmin to understand what i am doing so i can sell consulting hours to the customers". Honestly, you won't believe what i have seen shipped as "production code" in form of shell scripts during my life as an AIX administrator. People showing such code here in the beginners forum would get admonished for it - and rightly so!

So, yes, what you said *could* be a possible motivation for the scripts author. More likely, given the state of the real world, though, is was just for no particular reason at all.

bakunin

Another frequent source of misery is "cut/paste" of something that was found via google.

# comments in code, especially about traps - helps those who come later!