16

Possible Duplicates:
Keep a program running after closing a console, after the program has started
How can I use ssh to run a command on a remote Unix machine and exit before the command completes?

Hi!

I want to run program from my notebook by SSH-connection to remote server. The problem is I am going home with my notebook :)

How to keep program running?

Max
  • 263
  • 1
  • 2
  • 5

2 Answers2

24

'screen' is most likely what you want. It allows you to disconnect and reconnect at will. After you SSH into the server, run screen before starting your program. Ctrl-a, Ctrl-d will disconnect you (the program continues regardless). On your return, 'screen -r' will reconnect you as if you'd never been away.

Think of it as VNC or RDP for text terminals. Search for 'using screen' for many tutorials.

Edited to add: These days I would recommend tmux instead, especially if used in conjunction with the script tmx. The ability to split panes (vertically and horizontally) and resize them is a huge boon over screen.

Chris
  • 390
  • 1
  • 7
  • 5
    Incidentally, screen will keep running if your connection times out or anything like that while you're still attached to it. Some useful commands: ctrl + a, ctrl + d = detach from screen, screen -r = re-attach to a screen, screen -x = attach to a screen in shared mode (can be used for teaching etc, two users can share the same screen), ctrl + a, esc = enter scroll mode (hit q to exit again). NOTE: If you start a screen by typing "screen program" it will immediately launch the program in screen, but if it exits you'll lose the buffer. Typing just "screen" will give you a persistent terminal. –  Apr 25 '10 at 13:23
  • Chris, also tnx for usefull answer. –  Apr 25 '10 at 13:24
17

nohup is a command that will run another command, and make it immune to the "hangup" signal.

You run it as simply as:

nohup command

but you will also need to redirect stdin, stdout and stderr. See the man page for more info.

You'll also probably want to put it in the background.

You will also need to know the kill command to eventually kill it.

Oddthinking
  • 702
  • 4
  • 18