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
Asked
Active
Viewed 7,248 times
1 Answers
12
^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
daisy
- 53,527
- 78
- 236
- 383
-
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 Jan 23 '13 at 12:38
-
6@l0b0: `^C` sends `SIGINT`. `kill` (without `-9`) sends `SIGTERM`. Both those work the same, and can be handled by the program, but they're independent signals. – ams Jan 23 '13 at 13:00
-
2If `^C` doesn't work then you should try `kill` next, and then only `kill -9` if you have to. The difference is that `kill` on it's own gives the program chance to clean up its files and whatnot. `kill -9` just removes it without asking nicely. – ams Jan 23 '13 at 13:03
-