Sometimes, processes ignore the SIGINT signal sent by Ctrl-C in Bash. For instance, man
and vi
. Assuming you don't want to google or read the manual on how to exit the running process, is there any key sequence that will always work (without leaving the terminal)?

- 86,783

- 58,691
8 Answers
Send the SIGQUIT signal with Ctrl+\.
.. $ sleep 10
^\Quit
→ This is equivalent to kill -3 pid
. Programs run in user-space don't ignore sigquit.
There is also a set of Magic SysRq keyboard shortcuts. One of the more interesting ones is this: Alt+SysRq+k. It kills every process on the current virtual console. If one of your ttys is completely and utterly broken, this can be used to go back. On the tty running X.org, it can be used to kill X without mercy.
The SysRq key is, on most keyboards, the same as the Print Key. On my notebook, it can be invoked using the Fn key; I.e. Alt→Fn→Print→k in that order.
Here are some of the basic process management shortcuts:
- Ctrl+Z: pause a
process (plus
bg
to resume in the background,fg
to raise to foreground) - Ctrl+C: politely ask the process to shut down now
- Ctrl+\: mercilessly kill the process that is currently in the foreground
- Alt+SysRq+s: Write data to disk (always do this before killing anything important)
- Alt+SysRq+s, k: mercilessly kill all current processes on a given virtual console
- Alt+SysRq+s, b: mercilessly reboot without unmounting,
- Alt+SysRq+r, e, i, s, u, b: Safely reboot even if the system is utterly broken,
Note: Ctrl+Z, in contrast to Ctrl+C and Ctrl+\, also works for man
, vi
, less
, and the like.
When in doubt, the follwing procedure will almost always work:
~$ sleep 10
^Z
[5]+ Stopped sleep 10
~$ ps
PID TTY TIME CMD
4804 pts/0 00:00:00 bash
6207 pts/0 00:00:00 sleep
6208 pts/0 00:00:00 ps
~$ kill -9 6207
[5]+ Killed sleep 10
~$
^Z of course indicates that Ctrl+Z has been pressed.
For a more in-depth look at Shells and Terminals, also see my answers on:

- 86,783
You can try Ctrl+\

- 13,477

- 259
-
2
-
1
-
I had to hit Ctrl+\ twice before it did anything. However, it core dumped. – joatd Oct 28 '22 at 11:48
Sometimes the CTRL+C is getting sent to the wrong program or input channel. This is especially common with editors such as vi
, with commands with piped output, complex bash commands involving loops, etc.
A simple, quick solution is to suspend the job CTRL+Z and then kill it by job number: kill %1
or kill -9 %1
, etc.

- 507
Try one of these:
Ctrl+4
Ctrl+\
Or:
Ctrl+Z and then run:
kill %1
Where %1
is the number of job which was returned when you pressed Control-Z. Add -9
to force the kill.
When you're in text console, you could also try: Ctrl-SysRq. The kernel should kill the process.
Or SysRq-k, kill all processes on the current virtual console (can kill X and svgalib programs as well).
Note: When magic SysRq keys are used to kill a frozen graphical program, the program has no chance to restore text mode. This can make everything unreadable.

- 10,347
It's possible, that you changed the shortcut of copy from:
CTRL+SHIFT+C
To
CTRL+C
That way, when you try to kill a process, the CTRL+C doesn't work.
Try to replace the copy shortcut to CTRL+SHIFT+C.
-
2
-
Can you please expand on your answer a little? Step by step would be ideal, primarily so the OP can follow along with your suggestion. :) – AnotherKiwiGuy Nov 20 '16 at 21:17
-
1This actually helped me. I'm used to CTRL+C on MacOS, and didn't realise the Ubuntu command was CTRL+SHIFT+C – dǝɥɔS ʇoıןןƎ Feb 14 '19 at 16:10
-
-
Open Terminal → Preferences → Shortcuts and search if by mistake you have replaced any key with Ctrl+C.

- 17,696

- 19
Try Ctrl+Alt+Backspace
If you are using ubuntu 10.04 you wanna enable this key to work.
To enable Control-Alt-Backspace
Goto System-->Preferences-->Keyboard
Select the Layouts tab and click on the Layout Options.
Select Key sequence to kill the X server and enable Control + Alt +Backspace.
Note:
Pressing Ctrl-Alt-Backspace will restart your X server.

- 751

- 81,947
-
Edited the question to make it clear I want to kill the process from within the terminal. – Olivier Lalonde Nov 20 '10 at 12:04
ps
to see their process id and kill them usingkill pid
or, if you don't care about other instances of the program,killall vi
. In any case, Ctrl-Z always seems to work. – Stefano Palazzo Nov 20 '10 at 12:33kill %%
to kill the last job andkill %5
where 5 is the job number shown injobs
. – Olivier Lalonde Nov 20 '10 at 13:43Fn + Space
? – CMCDragonkai Nov 30 '15 at 07:44Alt+SysRq+r, e, i, s, u, b
mean pressingr,e,i,s,u,b
in sequence? And not holding it down. – CMCDragonkai Nov 30 '15 at 08:09Ctrl
+\
when there is no\
key in my keyboard layout? – Forivin Jan 19 '17 at 09:49