05. Pausing a process kill, killall

To pause or stop a process, we can either use keyboard shortcuts or send a signal to our process. Let's look at the keyboard shortcuts first, then dive into what sending signals is all about.

Interrupting a Process

To interrupt a process, press ctrl+c. This interrupts the program by sending it a INT (interrupt) signal.

Pausing a Process

To pause a process, press ctrl+z. This sends the program a TSTP command (Terminal Stop).

This is especially useful if you want to pause a program and come back to it later. For example, we could have Python running, then press ctrl+z. This will place Python to the background. If you want to return to Python, simply type fg %1, and you'll be back where you left off.

Stopping a process

Keyboard shortcuts are simply a convenient way to sending signals to jobs in our foreground.

As we have just seen, ctrl+c sends an INT signal (for interrupt), and ctrl+z sends a TSTP signal (terminal stop).

Besides sending an INT (interrupt) or TSTP (terminal stop) signal, there are many more signals that we can use with the kill command.

To use this command, specify a signal as the option, with the PID or the jobspec.

$ kill -s signal pid

If no signal is mentioned, the default signal is TERM (terminate).

Here is a list of Unix signals, which you may also see with the kill -l command. When specifying the signal, you may either use the shortened word form, or its integer value. We've included an asterisk next to a signal to denote the most commonly used signals.

1 HUP*
SIGHUP. Hang up.
Interrupt (same as ctrl+c). Terminates a program.
Kill. This signal is not sent to the target program. Instead, the kernel immediately stops the process, which doesn't allow for a proper clean up.
Segmentation violation. Sent if program makes illegal use of memory, such as writing data where it's not permitted.
15 TERM*
Terminate. The default signal sent by the KILL command.
Continue. This restores a process after a STOP signal.
Causes a process to pause without terminating. It is not send to the target process, like KILL.
Terminal stop. (same as ctrl+z).
Window change. A signal sent when the window changes size - some programs such as top and less respond by readjusting itself to fit into the new window.

Here are a few examples with the above signals.

$ kill -3 13569
# Quits out of process with PID 13569
$ kill -INT 1239
# Interrupts process with PID 1239.

Running processes persistently

Even without the kill command, a process can be shutdown. For instance, if you ssh into a computer, start up a process, then logout, a SIGHUP command will be sent out, and your program will be shut down.

To prevent your process to shutting down, precede the process invokation with the nohup command.

$ nohup python3 MyRedditBot.py

Shutting down multiple processes

To shut down multiple processes, use the killall command. This command uses a process' name instead of its PID. You may also place in the -i option so that the terminal asks for confirmation before shutting down a process.

The following command will terminal all programs with the name gedit.

$ killall gedit

Aching back from coding all day?

Acupressure Mat & Pillow

Aching back from coding all day? Try Back Problems

Relieve your stress, back, neck and sciatic pain through 1,782 acupuncture points for immediate neck pain relief. Made for lower, upper and mid chronic back pain treatment, and improves circulation, sleep, digestion and quality of life.

$$ Check price
144.87144.87Amazon 4.5 logo(1,890+ reviews)

More Back Problems resources

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources