Control+Z is used for suspending a process by sending it the signal SIGTSTP, which cannot be intercepted by the program. While Control+C is used to kill a process with the signal SIGINT, and can be intercepted by a program so it can clean its self up before exiting, or not exit at all.
If you suspend a process, this will show up in the shell to tell you it has been suspended:
[1]+ Stopped yes
However, if you kill one, you won't see any confirmation other than being dropped back to a shell prompt. When you suspend a process, you can do fancy things with it, too. For instance, running this:
fg
With a program suspended will bring it back to the foreground.
And running the command
bg
With a program suspended will allow it to run in the background (the program's output will still go to the TTY, though).
If you want to kill a suspended program, you don't have to bring it back with fg first, you can simply do the command:
kill %1
If you have multiple suspended commands, running
jobs
will list them, like this:
[1]- Stopped pianobar
[2]+ Stopped yes
Using %#, where # is the job number (the one in square brackets from the jobs output) with bg, fg, or kill, can be used to do the action on that job.
sttycommand. For examplestty susp ^Zorstty intr ^C. – RedGrittyBrick Mar 27 '11 at 12:08amarokand runkillall amarok, or runps auxand find the process id next to the executable name and runkill {process id}. – Bruno Finger Mar 10 '16 at 11:12