I am working on an application where I need to detect a system shutdown.
However, I have not found any reliable way get a notification on this event.
I know that on shutdown, my app will receive a SIGTERM signal followed by a SIGKILL. I want to know if there is any way to query if a SIGTERM is part of a shutdown sequence?
Does any one know if there is a way to query that programmatically (C API)?
As far as I know, the system does not provide any other method to query for an impending shutdown. If it does, that would solve my problem as well. I have been trying out runlevels as well, but change in runlevels seem to be instantaneous and without any prior warnings.
There is no way to determine if a
SIGTERMis a part of a shutdown sequence. To detect a shutdown sequence you can either use userc.dscripts like ereOn and Eric Sepanson suggested or use mechanisms like DBus.However, from a design point of view it makes no sense to ignore
SIGTERMeven if it is not part of a shutdown.SIGTERM‘s primary purpose is to politely ask apps to exit cleanly and it is not likely that someone with enough privileges will issue aSIGTERMif he/she does not want the app to exit.