News for hackers. Stuff that matters.
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by simcop2387 on Tuesday June 20, 2023 @05:39PM (#36411051)
You can't trap kill can you? doesn't that just go kill your process without any possibility of intervention or other actions? Also you probably want to handle HUP there too I would think (depending on what the script does)
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by chasil on Tuesday June 20, 2023 @05:48PM (#36411155)
That's what they put on the ticket, so that's what I'm using, but you're probably right.
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by mike_hock on Tuesday June 20, 2023 @05:52PM (#36411199)
SIGABRT is also not a normal termination signal. Seems out of place here.
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by paulddraper on Tuesday June 20, 2023 @06:04PM (#36411336)
SIGABRT would have to come from the process itself; IDK when if ever the shell would do that.

And SIGKILL can't be handled, so that is indeed pointless.

Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by arp242 on Tuesday June 20, 2023 @06:08PM (#36411378)
POSIX says that "setting a trap for SIGKILL or SIGSTOP produces undefined results", but for signals it describes SIGKILL as "Kill (cannot be caught or ignored)".

I'm guessing this is some relic from 80s Unix systems where SIGKILL behaved different, or perhaps just an inconsistency/oversight.

Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by nerdponx on Tuesday June 20, 2023 @06:42PM (#36411739)
I read that as undefined in terms of how the shell itself handles it, because the OS doesn't care.
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by remram on Tuesday June 20, 2023 @09:50PM (#36413377)
I think it means that it is valid for OSes to return an error instead of doing nothing, if you attempt it.
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by tzs on Tuesday June 20, 2023 @10:37PM (#36413702)
In sufficiently old Unix (I remember doing this on 32V) there was a fun little hack you could do with SIGKILL. If you sent SIGKILL to a process and that process was being debugged it would not kill the process. It would just pause it and notify the debugger that the process had received a signal, and tell the debugger which signal.

The debugger could then allow the signal to go through to the process as is, or to replace it with another signal, or have it be ignored.

I made a program that looked like sh in ps, but actually was a simple debugger that just ran a specific other processes of mine. When that process hit a signal the debugger poked the signal number into a fixed location in the process' memory, then changed the signal to something innocuous like SIGALRM, and let that be delivered.

The process' SIGALRM handler would get the original signal number that the debugger had poked in, and print some obnoxious message like "Stupid sysadmin...your wimpy SIGxxx cannot hurt me!" where xxx was whatever signal someone had tried to send it.

I then told my fellow admins I had a stuck process that I could not kill, and asked them to kill it.

It took quite a while before someone got suspicious enough to suspect that the sh that was the "stuck" processes parent wasn't actually a normal shell and try killing it.

Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by chasil on Tuesday June 20, 2023 @11:01PM (#36413862)
That is quite a story!
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by CoastalCoder on Wednesday June 21, 2023 @07:50AM (#36417281)
It's like the software equivalent of an Annoyatron! I love it!
Re:“Exit Traps” Can Make Your Bash Scripts Way More Robust a... by tyingq on Tuesday June 20, 2023 @08:15PM (#36412609)
You can't, though probably common for a parent to spin off a child and handle the SIGKILLed child via waitpid().