I know I can kill any process with kill -9 command . But sometimes i see that even if I have terminated a program with CTRL+C , the process doesn't get killed . So I want to know the difference between kill -9 vs CTRL+C
1 Answer
^C send the interrupt signal, which can be handled by a program (you can ignore it)
kill -9 send the sigkill signal which kills the program that you can't handle.
That's why you can't kill some programs with ^C
- 3One critical difference is that "well behaved" programs will catch ctrl-C and clean up after themselves (detach from any shared resources, destroy temporary files, reset the terminal to a sane state), SIGKILL doesn't give them that chance. BTW, it can happen that a program is stuck in an unkillable state inside the kernel.vonbrand– vonbrand2013-01-23 12:38:18 +00:00Commented Jan 23, 2013 at 12:38
- 6@l0b0:
^CsendsSIGINT.kill(without-9) sendsSIGTERM. Both those work the same, and can be handled by the program, but they're independent signals.ams– ams2013-01-23 13:00:01 +00:00Commented Jan 23, 2013 at 13:00 - 2If
^Cdoesn't work then you should trykillnext, and then onlykill -9if you have to. The difference is thatkillon it's own gives the program chance to clean up its files and whatnot.kill -9just removes it without asking nicely.ams– ams2013-01-23 13:03:17 +00:00Commented Jan 23, 2013 at 13:03