次の2つのコマンド(構文の変更を強調表示するようにソートされています)は、コマンドがシェルに渡される方法だけが異なり、さまざまな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)を実行している場合、2番目(使用)は失敗します。リダイレクトされたストリームのファイルが作成されますが、何も記録されませんstdout
。コマンドがバックグラウンドに分岐しない場合、次の構文はbash -s
OS X リスナーで機能します。
$ echo 'echo testing' \
| ssh u@h "nohup bash -s -- >/path/out 2>/path/err"
nohup
問題がMacで発生しているのか、それとも一貫性のない動作が原因で2つの間の相互作用で発生しているのかはわかりませんbash -s
。受信側では中断されたプロセスは表示されず、セッションが切断されたときに送信されたジョブがssh
消えるようですssh
。disown
仕事をすることも役に立ちません。bash
受信OS XシステムのバージョンはですGNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)
。nohup
すべての/ commandsが動作する受信Linuxシステムは、ssh
4(4.2+)のさまざまなバージョンを使用しています。bash
受信機の設定を変更すると、この問題を解決できますかssh
?