How to disown and then re-claim a runinng process in another terminal/shell window with bash
- Start a long running process, e.g. “scp my*****@co***********.com:/largefile.tar.gz .“
- Background the process with CTRL-Z
- Resume the process in the background: bg
- Disown the jobs from the current parent with disown %1. After that, jobs will not show the job any more, but “ps -a” or “ps -ef” will.
- Start your terminal multiplexer of choice, e.g. screen
- Display your running background jobs with “jobs -l“, this should look like this:
[1]+ 24494 Stopped (signal) scp
(The -l in jobs -l makes sure you’ll get the PID)
Run “screeen”
- Now run “reptyr 24494”, and then simply press “CTL-A D” to exit.
- Reattach to the back-grounded process: “reptyr 24494”
- Detach your terminal multiplexer (e.g. CTRL-A D) and close ssh
- Reconnect ssh, attach to your multiplexer (e.g. retty).