Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

nice

ジョブの優先度を変更する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
nice [-n adjustment] [COMMAND [ARG...]]

 niceコマンドは、ジョブの優先度を変更します。

 UNIXはマルチタスクOSであり、一度に複数のプログラムを実行することができます。しかし、実際は、同時に動いているように見えているに過ぎません。それぞれのプログラムに割りあてるCPU時間を微小時間で切り替えることにより、同時に動いているかのように見せているのです。UNIXでは、すべてのプログラムに同じCPU時間を割りあてるのではなく、優先度というものを設けて、優先度の高いプログラムに多くのCPU時間を割りあてます。そして、niceコマンドはこの優先度を変更する際に使用します。

 引数を指定せずに実行すると、現在実行しているシェルの優先度を表示します。引数を指定した場合には、オプションに従い優先度を調整してからCOMMANDで指定したコマンドを実行します。

CPU時間

 プログラムの動作時にはCPUを使用します。この時CPUはひとつしかありませんので(複数存在するコンピュータもありますが一般用途ではありません)、複数のプログラムの動作時には、微小時間ごとにCPUを使用するプログラムを変更します。非常に微小な時間で切り替えることによって、それぞれが連続して動いているように見えるのです。この微小な単位時間をCPU時間といいます

オプション
① -n adjustment

COMMANDに指定したコマンドの優先度に「adjustment」に指定した値を加えます。このオプションを指定しなかった場合には、コマンドの優先度を10だけ増加します。

 指定できる優先度の範囲は、-20(優先度最高)から19(優先度最低)までですが、負の値を指定することができるのは、スーパーユーザだけです。

引数
① COMMAND ARG...
優先度を変更するコマンドを指定します。
注意

 シェル組込みコマンドとしてのniceコマンドは、コマンド形式が異なり、優先度の前に+か-を付けて、指定します。そのため「-5」のような指定があり、この場合マイナス5を表します。つまり、「-」は「マイナス」であり「ハイフン」ではありません。

 cshなどを使用している場合は、明示的に「/bin/nice」のようなフルパスで指定する必要があります

引数を指定せずに実行
$ nice 
1
シェルの優先度を表示
$
優先度を指定せずに実行
$ nice 
1
$
$ nice sh
11
優先度を指定せずに実行すると10だけ増加
$
優先度を指定して実行
$ nice 
1
$ nice -n 5 sh
$ nice
6
オプション「-n」を使って優先度を5だけ増加
$
優先度を設定してviコマンドを実行
$ nice 
1
$ nice -n 3 vi&
[1] 1861
viコマンドをバックグランドで実行
優先度は、シェルの優先度である1に3を加えた4となる
$ nice -n 5 vi&
[2] 1862
viコマンドをバックグランドで実行
優先度は、シェルの優先度である1に5を加えた6となる
[1]+ Stopped nice -n 3 vi
$ nice -n 10 vi&
[3] 1863
viコマンドをバックグランドで実行
優先度は、シェルの優先度である1に10を加えた11となる
[2]+ Stopped nice -n 5 vi
$ ps _l
プロセスの状態を表示
NIが優先度
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 501 1224 1223 0 75 0 - 1078 wait4 pts/0 00:00:00 bash
000 T 501 1861 1224 0 79 4 - 965 do_sig pts/0 00:00:00 vi
000 T 501 1862 1224 0 85 6 - 965 do_sig pts/0 00:00:00 vi
000 T 501 1863 1224 0 90 11 - 965 do_sig pts/0 00:00:00 vi
000 R 501 1932 1224 0 76 0 - 768 - pts/0 00:00:00 ps
$
HINT!

 バックグランドpsコマンド

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5