Open krisnova opened 1 year ago
i believe SIGTERM
should do the "die nice". SIGINT
is a "user triggered interrupt" signal that processes can interpret however they want but it doesn't necessarily suggest termination.
https://dsa.cs.tsinghua.edu.cn/oj/static/unix_signal.html
this also suggests "SIGINT is nearly identical to SIGTERM". SIGINT
is explicity "sent from a user" though.
Looking for some clarification on 3...
Should (a) every signal auraed receives be sent to every executable? Or are we saying (b) we want to add rpc signal(CellServiceSignalRequest) ...
so that clients can send targeted signals to select executables?
I'm thinking we want the option b. Right?
if a SIGKILL is sent to auraed, i assume it means "die in a fire" and we should take down everything auraed has spawned along with us.
SIGTERM would be the same, and would also expect spawned processes/nested aurae to "die nicely" so that needs to be passed along, but maybe that means calling the various Stop
and Free
APIs instead.
SIGHUP is a different one as i suspect we'd only want that to be handled by auraed.
so i think 1 and 2 hold, but 3 isn't necessary as it's not obvious how we would interpret the signals.
this leaves an open question: how do we send a signal to a spawned executable managed by a nested auraed?
Now that
auraed
is launching nested versions of itself, we will need to proxy POSIX signals throughauraed
SIGKILL
should terminate (kill) the processSIGHUP
should reload the config from disk and reopen logfilesSIGINT
should "interrupt" the process and begin to "die nice" ensuring any cleanup logic can be doneUse
SIGINT
instead ofSIGKILL
to "free" a nested auraed after the signal handler has been implemented.Proxy all signals to nested executables for them to manage independently.
For example sending a
SIGHUP
to a nestedauraed
should proxy aSIGHUP
to all of the nested executables!