コマンドリファレンス - プロセス操作 jobs ...
- 1. % ジョブの指定
- 2. & バックグラウンドジョブの起動
- 3. jobs 現在のジョブ一覧を表示
- 4. stop バックグラウンドで動作中のジョブを一時停止
- 5. wait バックグラウンドジョブの終了を待つ
- 6. fg 中断したジョブを再開する
1. %
ジョブ制御コマンド「stop」「kill」では、以下の引数で制御ジョブを指定します。
指定したいジョブ | 引 数 |
カレントジョブ | (省略) %+ %% |
前のカレントジョブ | %- |
ジョブ番号のジョブ | %ジョブ番号 |
起動コマンドの先頭文字列 | %文字列 |
起動コマンドに含まれる文字列 | %?文字列 |
2. &
コマンド &
ジョブをバックグラウンドで実行するには、起動コマンドの最後に & をつけて入力します。
すると、ジョブがバックグラウンドで起動され、ジョブを識別するためのジョブ番号([] で囲まれた数字)と、直前に起動されていたプロセス番号が表示されます。シェルでのジョブ管理はジョブ番号を指定して行います。
例
$ sleep 10 &
[2] 34137
[1] Done sleep 10
3. jobs
jobs [-l]
現在のバックグラウンドジョブを一覧表示します。
各行には、次の情報が表示されます。
フィールド | 内 容 | 表 示 |
1 | ジョブ番号 | [1]、[2]、[3]などの数字 |
2 | ジョブ記号 | + カレントジョブ - 前のカレントジョブ |
(3) | プロセス番号 | -l オプション時に表示 |
4 | ジョブの状態 |
Running バックグラウンド実行 Done バックグラウンド停止 |
5 | 起動コマンド | ジョブが起動されたコマンド |
例
$ sleep 10 &
[1] 34157
$ sleep 10 &
[2] 34158
$ sleep 10 &
[3] 34159
$ jobs -l
[1] + 34157 Running sleep 10
[2] - 34158 Running sleep 10
[3] 34159 Running sleep 10
$ jobs -l
[1] + 34157 Done sleep 10
[2] + 34158 Done sleep 10
[3] + 34159 Done sleep 10
4. stop
バックグラウンド実行状態のジョブをバックグラウンド停止状態にします。
stop %ジョブ指定
例
$ sleep 10 &
[1] 34166
$ stop %+
[1] + Suspended (signal) sleep 10
$ jobs -l
[1] + 34166 Suspended (signal) sleep 10
5. wait
バックグラウンドで実行中のジョブの終了を待ちます。
wait
例
$ sleep 10 &
[3] 34188
[2] Done sleep 10
$ wait
[3] Done sleep 10
6. fg 中断したジョブを再開する
「exit」使用としたときに「中断した「job<」が残っています.」と言われることがあります。
再開するときのコマンドが「fg」(fore ground)です。
$ exit
中断したjobが残っています.
$ fg
「Windows」と「FreeBSD」のマシンを使っていて、切り替えながらやっていると、よくこの状態に陥ることがあります。
「Windows」のコピーが Ctrl+C、元に戻すが Ctrl+Z で。
「FreeBSD」の実行中止が Ctrl+C で、中断が Ctrl+Z。
止めるつもりのない、操作を中断してしまってあせったりします。
ちなみに、「job」が複数ある場合は、「fg」の後ろに、「job」の番号を付けます。
|
|