【Ubuntu22】バックグラウンドでプログラムを実行する方法まとめ(nohup・実行中に切り替え)

Ubuntuを使っていると、

  • 長時間かかる処理を実行したい
  • ターミナルを閉じても処理を止めたくない
  • 別の作業をしながら処理を続けたい

こんな場面ってありますよね。

今回は Ubuntu22でバックグラウンド実行する方法 を、わかりやすく解説します。


■ バックグラウンド実行とは?

通常、コマンドを実行するとターミナルはその処理が終わるまで操作できません。

例:

python3 test.py

この状態だと、処理が終わるまで次のコマンドは入力できません。

これを 裏側(バックグラウンド)で実行する ことで、
他の作業を同時にできるようになります。


方法① nohupを使う(ログアウトしても止まらない)

■ nohupとは?

nohup は「ログアウトしても処理を止めない」ためのコマンドです。

サーバー作業ではとてもよく使います。


■ 基本構文

nohup コマンド &

■ 実例

nohup python3 test.py &

実行するとこんな表示が出ます:

[1] 12345

この「12345」はプロセスID(PID)です。


■ 出力ファイルについて

特に指定しない場合、出力は

nohup.out

というファイルに保存されます。

ログを指定したい場合はこちら:

nohup python3 test.py > output.log 2>&1 &

解説

  • > 標準出力
  • 2>&1 エラー出力も同じファイルへ
  • & バックグラウンド実行

■ 実行確認

ps aux | grep test.py

または

jobs

方法② 実行中にバックグラウンドへ回す方法

「しまった!普通に実行しちゃった…」

そんな時でも大丈夫です 👍


■ 手順

① 実行中に

Ctrl + Z

を押す

→ 一時停止(Stopped)状態になります。


② バックグラウンドで再開

bg

これでバックグラウンド実行に切り替わります。


■ 例

python3 test.py

実行中に

Ctrl + Z

bg

これで裏側で動き続けます。


■ フォアグラウンドに戻す場合

fg

■ さらに便利なコマンド

実行中ジョブ確認

jobs

特定ジョブをフォアグラウンドへ

fg %1

(%1 はジョブ番号)


■ まとめ

方法特徴
nohupログアウトしても止まらない
Ctrl + Z → bg実行中でも切り替え可能

■ こんな人におすすめ

  • Ubuntuサーバーを触り始めた人
  • Pythonバッチを動かしたい人
  • 長時間処理をしたい人
  • VPS利用者

Ubuntuではバックグラウンド実行は必須スキルです。

最初は怖いかもしれませんが、
仕組みが分かるととても便利です 😊

ぜひ試してみてください!


ここまで読んでいただきありがとうございました 🙌

コメント

タイトルとURLをコピーしました