コース一覧
Linux運用・管理
nohupでログアウト後も実行する

Linux運用・管理

ユーザー権限、パーミッション、プロセス、ジョブ制御を学び、Linux上の実行中サービスと作業権限を安全に管理できるようにします。

1
パーミッションと権限管理
0. ユーザーとグループの概念5分
1. パーミッションの読み方5分
2. 権限の変更 chmod5分
3. 所有者の変更 chown5分
4. sudo - スーパーユーザーの力5分
5. 実行権限とスクリプト5分
6. パーミッションチェック5分
2
プロセス管理とジョブ制御
0. プロセスとは何か5分
1. psでプロセス一覧を確認する5分
2. topでリアルタイム監視する5分
3. プロセスの終了 kill5分
4. フォアグラウンドとバックグラウンド5分
5. nohupでログアウト後も実行する5分
6. プロセス管理チェック5分

Linux運用・管理

01ユーザーとグループの概念
02パーミッションの読み方
03権限の変更 chmod
04所有者の変更 chown
05sudo - スーパーユーザーの力
06実行権限とスクリプト
07パーミッションチェック
08プロセスとは何か
09psでプロセス一覧を確認する
10topでリアルタイム監視する
11プロセスの終了 kill
12フォアグラウンドとバックグラウンド
13nohupでログアウト後も実行する
14プロセス管理チェック

Linux運用・管理

nohupでログアウト後も実行する

接続が切れた瞬間、6 時間流していたバッチが消える

サーバーに入って重い集計を流し、そのまま帰る。翌朝つないでみると、プロセスは影も形もなく、ログも途中で終わっている。ノートパソコンを閉じたか、回線が一瞬切れたか、そのどちらかです。

裏に回して & を付けていても、これは起こります。接続が切れるとシェルが終わり、シェルは終わるときに自分の子へ終了の合図を配ってから消えるからです。この合図はもともと「端末が無くなったので、もう出力先がない」という通知で、受け取った側の既定の反応が終了になっています。

合図を最初から無視させる

ターミナル

$ nohup ./monthly-batch.sh > /var/log/batch/202605.log 2>&1 &
[1] 4210

nohup を先頭に付けて起動すると、そのプロセスは終了の合図を受け取っても無視するようになります。あわせて標準入力が切り離されるので、入力待ちで固まることもありません。

出力先を書かずに起動すると、今いるディレクトリの nohup.out に溜まっていきます。どこに何が出ているのか分からなくなるので、上のように行き先を自分で決めておくほうが後で困りません。

起動した後で気づいたときは disown

ターミナル

$ ./monthly-batch.sh > /var/log/batch/202605.log 2>&1 &
[1] 4210
$ disown %1

nohup は起動時にかぶせるものなので、走り始めた後では使えません。その場合は disown で、そのジョブをシェルの管理表から外します。表に載っていなければ、シェルが終わるときに合図を配る相手にも入りません。

先に構えるのが nohup、後から外すのが disown、と覚えると迷いません。

途中経過を覗きに戻りたいなら tmux

ターミナル

$ tmux new -s batch
# 中で作業を始める。Ctrl+b を押してから d で抜ける
$ tmux attach -t batch

nohup で流したものは、後から「今どこまで進んだか」を対話的に確かめられません。見られるのはログファイルだけです。tmux は端末そのものをサーバー側に残す道具で、接続を切っても中の作業はそのまま動き続け、翌日つなぎ直せば同じ画面に戻れます。

長いデプロイ作業や、途中で判断が要る作業は、最初から tmux の中で始めておくと、回線が切れても続きから再開できます。

解説

走らせっぱなしにするときほど、ログの行き先を決めておくことが効いてきます。nohup.out が何日も膨らみ続けてディスクを埋め、無関係なサービスまで止まる、というのは実際に起きる壊れ方です。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • プロセス実行中のプログラムのこと。
  • シェルコマンドを解釈して実行するプログラム
  • ディレクトリファイルを整理するフォルダのこと。
  • デプロイ本番環境へアプリを配置し公開する作業
  • 判断YES/NO 分岐を表す菱形
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2025/12/19·更新 2026/08/26

関連レッスン

  • プロセス管理チェック

    プロセス管理に関する理解度をクイズ形式でチェックし、知識を定着させましょう。

  • フォアグラウンドとバックグラウンド

    コマンドをフォアグラウンドとバックグラウンドで実行する方法を、実際に操作しながら理解します。

  • プロセスの終了 kill

    不要なプロセスを終了させる`kill`コマンドの使い方をターミナルで実践的に学びます。

  • topでリアルタイム監視する

    topコマンドで、CPUやメモリの使用状況など、システムの状態をリアルタイムに監視します。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。