34
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Linux】ジョブのバックグラウンド実行

Posted at

Linux terminal 上でジョブをバックグラウンドで実行する方法について説明する。

バックグラウンド実行

コマンドの最後に "&" をつけるだけ!

[fuji@fujios ~]$ sleep 1000 &
[1] 4593

上の1000秒待機するジョブは、プロセス番号[4593]に割り振られましたよ、って意味。
実際にプロセスを確認してみる。

[fuji@fujios ~]$ ps
  PID TTY          TIME CMD
 4540 pts/0    00:00:00 bash
 4593 pts/0    00:00:00 sleep
 4594 pts/0    00:00:00 ps

ちゃんとバックグラウンド実行できていることを確認できた。

“ログアウトしても”バックグラウンド実行

SSH接続で時間のかかるジョブを実行した際に、SSH接続を切るとジョブが死んでしまう。
ジョブが kill されないようにするには、"nohup" コマンドを使う。

[fuji@fujios ~]$ nohup sleep 1000 &
[1] 4524
[fuji@fujios ~]$ nohup: appending output to `nohup.out'

ここで気をつけるのは、"nohup" がバックグラウンド実行でないということ。
そこで末尾に "&" をつけてバックグラウンド実行にしている。

ちなみに標準出力/エラーは、プログラムを実行したディレクトリに nohup.out というファイル名で保存される。

参考:ログアウトしてもバックグラウンド ジョブを継続する方法

34
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?