109 views
【1】やりたいこと
(1) Windowsパソコンで Terminalソフトを起動して Linuxマシンにリモート接続する。
(2) Terminal上で処理時間が 24時間を超えるプログラムの実行を開始する。
(3) Windowsパソコンをシャットダウンする。
→ SSHセッションが切れて、(2)のプログラムがシャットダウンする…
を、回避したい。
【2】やってみる
(1) hungup signalを無視させる。
SSHセッション切断によるプログラム終了を回避するため、nphup コマンドで、ハングアップシグナルを無視させる。
nohup my_command &
(2) ログを出力させ続けたい。
ログファイルには、以下の両方を出力させたい。
・stdout : 標準出力
・stderr : 標準エラー出力
nohup my_command > output.log 2>&1 &
2>&1 は、stderr(discriptor 2)を stdout(discriptor 1)にマージさせる指定
これにより、上記【1】の手順は以下のように変わる。
(1) Windowsパソコンで Terminalソフトを起動して Linuxマシンにリモート接続する。
(2) Terminal上で処理時間が 24時間を超えるプログラムの実行を開始する。
(3) Windowsパソコンをシャットダウンする。
→ SSHセッションが切れても、(2)のプログラムは動き続ける。
(4) 24時間後、Windowsパソコンを起動し、SSHで Linuxマシンにリモート接続する。
(5) ログを参照し、プログラムの実行結果を確認する。