Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

kill -9 and production application

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.

like image 356
valodzka Avatar asked Jun 05 '10 11:06

valodzka


2 Answers

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.

like image 171
Brian Agnew Avatar answered Oct 13 '22 19:10

Brian Agnew


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.

like image 21
Matt Curtis Avatar answered Oct 13 '22 18:10

Matt Curtis