我正在尝试通过 ssh 在远程服务器上执行脚本。
该命令应转到后台并在注销后继续运行。命令的结果应重定向到远程站点上的 out.log。
ssh 进程应该退出而不等待命令
远程 shell 是 csh
我尝试了以下行的各种版本(引用、大括号...)
ssh target.host "nohup csh longrunning.sh > out.log 2>&1 &; exit"
要么我的尝试在远程站点上没有执行任何操作,要么由于多个&符号而导致不明确的重定向。
远程站点是一个最小的 FreeBSD 系统,没有screen
安装类似的工具
答案1
你不就是在寻找吗
ssh target.host "nohup csh longrunning.sh >& out.log &; exit"
对于您想要实现的目标来说,这似乎是 csh 的正确语法。
您使用的语法与 csh 不兼容,因为它的语法与 Bourne shell 不兼容。