osx 上的 nohup ssh

osx 上的 nohup ssh

以下两个命令(对齐以突出显示语法更改)仅在将命令传递到 shell 的方式上有所不同,它们在运行各种基于 Linux 的操作系统(debian、centos、opensuse 等)的接收器上运行良好:

$ ssh u@h "nohup bash -c 'echo testing' -- >/path/out 2>/path/err &"
$ echo                   'echo testing' \
| ssh u@h "nohup bash -s                -- >/path/out 2>/path/err &"

没有明显的原因,bash -s当接收节点 ( h) 运行 OS X (10.9.5) 时,第二个(使用 )失败:创建了重定向流的文件,但没有向 写入任何内容stdout。如果该命令未分叉到后台,则该bash -s语法适用于 OS X 接收器:

$ echo                   'echo testing' \
| ssh u@h "nohup bash -s                -- >/path/out 2>/path/err"

由于行为不一致,我无法判断问题是否源于nohupmac 或bash -s两者之间的交互;我在接收端没有看到任何挂起的进程;会话断开后,发送的作业ssh似乎就消失了sshdisown做这份工作也无济于事。bash接收 OS X 系统上的版本是GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13).所有nohup/命令均在其上工作的接收 Linux 系统正在使用4 (4.2+)ssh的各种版本。bash

可以通过更改接收器的配置来解决此问题吗ssh

相关内容