我将Bash的一个片段复制到远程执行的ssh命令的后台:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
怎么<&-
办?
我的猜测是,它与< /dev/null
我的下一个理解是,三个主要的文件描述符(stdin
,stdout
,stderr
)需要被关闭,以防止:
- 作业正在后台运行,脚本正在退出-发生冲突吗?
- 当终端关闭时,正在接受来自终端的stdin的所有进程都关闭了吗?
ssh -nNT user@remote 'command'
将创建一个非交互式的SSH会话。追加&
到它的背景,前置nohup
到command
以保持它,如果你的连接模运行。
man ssh
建议-N完全禁用运行远程命令,而快速测试支持此功能。