(154) プログラムをバックグラウンド実行&全ログをファイル出力したい。

投稿者: | 2024年2月8日

812 views

この記事は最終更新から 697日 が経過しています。

【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) ログを参照し、プログラムの実行結果を確認する。


アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済
  • 2026-01-05: 0回
  • 2026-01-04: 0回
  • 2026-01-03: 0回
  • 2026-01-02: 0回
  • 2026-01-01: 0回
  • 2025-12-31: 0回
  • 2025-12-30: 0回
  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です