「ssh localhost nohup echo hello」が機能しないのはなぜですか?

「ssh localhost nohup echo hello」が機能しないのはなぜですか?

私はこれがそれを要約すると思います:

# /usr/bin/nohup echo hello
/usr/bin/nohup: ignoring input and appending output to `nohup.out'

# ssh localhost /usr/bin/nohup echo hello
hello

どうしたの?

ベストアンサー1

確かに

最新バージョンのSSHは、TTYではなくSTDIO用のパイプの使用を開始します。

だから

Bashスクリプトは、sshtty以外のコマンドがパイプされているかどうかはわかりません。

ターミナルを検出/接続するときにのみ操作を実行しnohup(出力がパイプに入るときは何もしません)、開始方法がパイプに見えるため、表示される動作が得られます。stdoutstderrssh


〜のようにムル 指摘ssh、パラメータを使用して強制的に割り当てることができます。tty-t

$ ssh -t localhost "/usr/bin/nohup /bin/echo foo"
/usr/bin/nohup: ignoring input and appending output to ‘nohup.out’

おすすめ記事