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?
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?
If the command doesn't have to be scripted, you can do it this way:
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.
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.
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
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.