I have a bash script (on osx) running continuously, it currently traps and handles a terminate like so
trap onshutdown TERM
how can I make trap also handle suspend/resume like
trap onsuspend ?
trap onresume ?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityYou're looking for signals SIGTSTP and SIGCONT. Try this:
trap onsuspend TSTP
trap onresume CONT
SIGSTOP
, which is the SIGKILL
to SIGTSTP
's SIGTERM
. (In other words, SIGTERM
is “please die”, SIGKILL
is “you're dead”, SIGTSTP
is “please suspend” and SIGSTOP
is “you're suspended”.)
Apr 17, 2011 at 12:26
Since the program is simply suspended and not reliably told, I would instead set up a named pipe and spawn a sentinel script.
It would simply loop every 5 or 15 minutes writing the current time stamp to the named pipe and then sleep.
You could then read from that pipe and do the math between reads - if the time jumps more than one or two pings, then you have slept.
Depending on how accurate you need the times, you could then tail the /private/var/log/system.log file (and potentially /private/var/log/system.0.log.gz) for the last sleep / wake times logged by the kernel.
It's going to be more work than relying on signals. You could also have the helper run itself and send whatever signal you want to your script.
Six of one, half dozen of the other.