Which problem can cause kill -9
in production application (in linux to be exact)?
I have application which do some periodical work, stopping these takes long time, and I don't care if some jobs will be aborted - work can be finished by new processes. So can I use kill -9
just to stop it immediately or this can cause serious OS problems?
For example, Unicorn, uses it as normal working procedure:
When your application goes awry, a BOFH can just "kill -9" the runaway worker process without worrying about tearing all clients down, just one.
But this article claims:
The -9 (or KILL) argument to kill(1) should never be used on Unix systems
PS: I understand that kill -9
cannot be handled by application, but I know that for may application it doesnt cause any problems, I just intrested can it cause some problems on OS level? shared memory segments active, lingering sockets
sounds dangerous to me.
kill -9
doesn't give an application a chance to shut down cleanly.
Normally an application can catch a SIGINT/SIGTERM
and shut down cleanly (close files, save data etc.). An application can't catch a SIGKILL
(which occurs with a kill -9
) and so it can't do any of this (optional) cleanup.
A better approach is to use a standard kill
, and if the application remains unresponsive, then use kill -9
.
kill -9
won't cause any "serious OS problems". But the process will stop immediately, which means it might leave data in an odd state.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With