SSHを介してリモートサーバーでスクリプトを実行しようとしています。
コマンドはバックグラウンドに移動し、ログアウト後も引き続き実行する必要があります。コマンドの結果は、リモートサイトのout.logにリダイレクトする必要があります。
SSHプロセスはコマンドを待たずに終了する必要があります。
リモートシェルはcshです。
私は次の行(引用符、中括弧...)のさまざまなバージョンを試しました。
ssh target.host "nohup csh longrunning.sh > out.log 2>&1 &; exit"
私の試みは、リモートサイトで何もしないか、複数のアンパサンドが原因であいまいなリダイレクトを引き起こします。
リモートサイトは、screen
同様のツールがインストールされていない最小のFreeBSDシステムです。
答え1
ただ探しているのではないですか?
ssh target.host "nohup csh longrunning.sh >& out.log &; exit"
これは達成したいcshの正しい構文のようです。
使用している構文はBourneシェルと互換性がないため、cshと互換性がありません。