How to suspend and resume processes
In the bash terminal I can hit Control+Z to suspend any running process... then I can type
fgto resume the process.
Is it possible to suspend a process if I only have it's PID? And if so, what command should I use?
I'm looking for something like:
and then to resume it with
You can use
killto stop the process.
For a 'polite' stop to the process (prefer this for normal use), send SIGTSTP:
kill -TSTP [pid]
For a 'hard' stop, send SIGSTOP:
kill -STOP [pid]
Note that if the process you are trying to stop by PID is in your shell's job table, it may remain visible there, but terminated, until the process is
To resume execution of the process, sent SIGCONT:
kill -CONT [pid]
Unless there are other reasons for it, I would prefer SIGTSTP over SIGSTOP, as some applications do handle SIGTSTP specially. For example, if scp is showing a progress bar, SIGTSTP will cause it to clean up the terminal mode before suspending, but if you send SIGSTOP, it will not have a chance to do so.
@ephemient I tried SIGTSTP, I saw what you were saying about it cleaning up the terminal. Thanks for the explanation of SIGTSTP, alawys good to learn new things :)
Also useful to note that you can reference the [pid] value by using the % symbol and then the job number (one that you can find by running `jobs`). So you'd go: `kill -TSTP %1`