How to move a running process to background (UNIX)

UnixSshTerminal

Unix Problem Overview


I have a terminal connected to an external machine through ssh and have a process running in it. Is it possible move the execution to the background, so that I can close the ssh connection without the need to kill it? If so how?

Unix Solutions


Solution 1 - Unix

Press control + Z, which will pause it and send it to the background. Then enter bg to continue it's running in the background.

Alternatively, if you put a & at the end of the command to run it in the background from the start.

This will just make it run in the background and once you log out it will still be killed. In order to keep it running after logout you will need to "disown" the process with disown -h, so that the shell doesn't count it among your processes needing to be killed on logout. See this post for more details.

Solution 2 - Unix

You can as well use the "screen" command which will keep running with processes inside it once you have detached from it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMiguelView Question on Stackoverflow
Solution 1 - UnixJon DeatonView Answer on Stackoverflow
Solution 2 - UnixAlain StarView Answer on Stackoverflow