ログアウトしてもバックグラウンドジョブが動作するようにするには
nohupを使う。標準出力はカレントディレクトリに作られるnohup.outへ追記出力される。
のだけどsshで使うときには注意点あり。
標準入力、標準出力、標準エラー出力 (入出力ストリーム)を リダイレクト すると期待通り動きます。
% ssh localhost "nohup sleep 10 < /dev/null > /dev/null 2> /dev/null &"
注意点
標準入力を閉じる
SSH でログインしている場合は3つの I/O ストリーム をリダイレクトしておきます。SSH 接続でバックグラウド ジョブを実行する場合、日常的に標準出力、標準エラー出力をリダイレクトしていると思いますがここで重要なのは標準入力を閉じておくことです。具体的には /dev/null にします。
$ nohup ./abc.sh > out.log 2> err.log < /dev/null &詳しいことは SSH Frequently Asked Questions をご覧下さい。
ログアウトしてもバックグラウンド ジョブを継続する方法
ので、aliasとして
nohup='nohup < /dev/null'
を登録してみた。