リモートシステムにあるシェルスクリプトを起動したいと思います。私が使うとき
ssh [email protected] /path/to/script.sh
スクリプトが終了するまでSSH接続が開いている必要があります。
ただし、SSH接続を閉じた後もスクリプトが完了するまで実行を続けるにはスクリプトが必要です。プロセスを開始して忘れたいです。
SSHを使用してこれをどのように実行できますか?
ありがとうございます!
PS:これは重複しませんこのスタック変更の問題。
答え1
問題は、SSHセッションが閉じられると(ctrl-cを押すかxtermを閉じる)、HUPがプロセスに送信されることです。プロセスをバックグラウンドにフォークするにはを追加し、&
ハップを防ぐには次のようにしますnohup
。
ssh [email protected] 'nohup sleep 300 >/dev/null 2>/dev/null </dev/null &'
ssh が起動し、プロセスが example.com のバックグラウンドで実行されます。
進行状況を監視するには、次のものを使用できますscreen
。これを行うには、次のようなものが役に立ちます。
ssh [email protected] -t 'screen -D -RR -S this /bin/sleep 300'
これにより、「this」(-S)という名前の画面セッションが作成され、他の場所に接続されている場合はすでに実行中の画面を切り離して再接続します。次に/bin/sleepを起動し、5分間待ちます。