On a linux system is there any way to use nohup when the process that is being nohuped required input, such as an rsync command that needs a password to be entered but will then run happily on its own?
|
feedback
|
|
If the command doesn't have to be scripted, you can do it this way:
| |||
|
feedback
|
|
You want to look at screen. Screen will create a shell session for you, which you can detach and then reattach at a later date. Try:
You can type in your password, verify that it's running as you expect and then press 'ctrl-a' followed by 'd'. You should now be detached from your screen session. If you want to see how it's getting on, run
and you should be reattached. 'ctrl-a' 'd' will detach you again. When the command finishes, screen should quit. | |||
|
feedback
|
|
If possible it might be better for the specific instance of running an rsync command to set up SSH key authentication without a password rather than try to automatically stuff a password into rsync. | |||
|
feedback
|
|
Aside from what's been said above, the most general solution might be to wrap the command in a script that takes input from a file and passes it on (perhaps using pipes, or expect, or something like that). The wrapper script itself is then just a normal command that doesn't require input, of course. | |||
|
feedback
|
|
Some modules on the remote daemon may require authentication. If so, you will receive a password prompt when you connect. You can avoid the password prompt by setting the environment variable RSYNC_PASSWORD to the password you want to use or using the --password-file option. This may be useful when scripting rsync. found this in the man page | |||
|
feedback
|