Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm currently running a backup and it now needs to be transferred to detachable one like on tmux/screen. Is there a way to do this when the command is currently running?

I can send the command the background by pressing ctrl+z and put it back up by issuing a fg command. but I do not know if that session can go back when i exit the terminal.

share|improve this question
1  
There is no way to do that. You have to start the command from within a screen (or other) session for it to be detachable. –  Dan D. Jul 24 '13 at 3:16

2 Answers 2

This works, most of the time:

(prerequisites: have reptyr and tmux/screen installed; you'll be able to find them with apt-get or yum, depending on your platform)

  1. Use Ctrl-Z to suspend the process.

  2. Resume the process in the background with bg

  3. Find the process ID of the background process with jobs -l

    You'll see something similar to this:

    [1]+ 11475 Stopped (signal) yourprocessname
    
  4. Disown the job from the current parent (shell) with disown yourprocessname

  5. Start tmux (preferred), or screen.

  6. Reattach the process to the tmux/screen session with reptyr:

    reptyr 11475
    
  7. Now you can detach the multiplexer (default Ctrl-B D for tmux, or Ctrl-A D for screen), and disconnect SSH while your process continues in tmux/screen.

  8. Later when you connect with SSH again, you can then attach to your multiplexer (e.g. tmux attach).

share|improve this answer

you can use disown to detach the job from its terminal, if that command is available.

it is safer to run it with nohup to start with though.

share|improve this answer
    
Can you expand on this? What do you mean to start with it nohup? How does disowning a process work? –  Darth Android Jul 24 '13 at 15:40
    
disown detaches the background process (that you put into background with control-z) from the terminal so the process will continue after the terminal is gone. you can just type disown after control-z, if the command is found. however this is in theory and may not work reliably. next time it is safer by adding nohup in the front of your program so that you can exit the terminal safely. –  johnshen64 Jul 24 '13 at 15:50
    
I've found 'disown' to be pretty unreliable, as mentioned. nohup isn't really hugely better. reptyr might be a solution however. github.com/nelhage/reptyr –  anastrophe Sep 20 '13 at 23:58
    
This does not answer the question. The question is not only "how do I close the terminal without killing the backup", it is "how do I resume it later". To which the correct answer is "you can't". –  Gabe Nov 11 '13 at 23:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.