On 4/11/2012 10:05 PM, Chris Arnold wrote:
I hopethis hope this makes sense. How do you make rsync run even when not 
physically connected to the server? In other words, I run rsync from the 
terminal via vnc and when I log out of the connection, rsync stops running. Is 
there a script or something I can use?

Sent from my iPhone

Well, vnc is already itself one way, it just depends how you have vncserver, xvnc, and your desktop session set up and how you are disconnecting. It's possible to disconnect from a vnc session without closing the desktop session. In that case rsync wouldn't stop any more than any other thing running in that session.

nohup or screen are the usual answers for this though, not just for rsync or vnc.

If you don't care about seeing the output while it's running:
nohup someprogram options... &

The output is written to nohup.out by default so you can tail -f thatto check ongoing progress or cat/less it later when all done.


Myself I like to use screen.

screen -S foo

That doesn't look like it did anything but it did. You are now in a screen session named foo. You can put whatever you want for "foo" it's just a name you make up for the session so that it's easier to recognize and reconnect to later. So in this case you might say screen -S rsync or screen -S rsync_targetmachine

Now just run the rsync command. no nohup, no &.

Now rsync is chugging along, press ctrl-a then d to detach from the screen session. rsync is still running in that screen session, just you are no longer attached to that screen session.

Now you can log out, go somewhere else, connect back from somewhere else, get a new shell, list all screen sessions:
screen -ls
you'll likely only have the one you created unless it's a multiuser system and someone else uses screen. It'll say "chris 24371.foo"

To reattach to that session:
scree -r foo

Now you'll either see the ongoing rsync, or you'll see the final summary messages and a new shell prompt.

If rsync is still running, just ctrl-a d again.

If rsync is done and you're done with that screen session, you should type exit at the shell prompt from within the screen session, (instead of pressing ctrl-a d to detach) that will exit that shell and close and destroy the screen session.
You'll be back at the parent shell and screen -ls will show no sessions.

man/google nohup and gnu screen

--
bkw
--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to