niceコマンドは、指定したコマンドを実行する際に、指定された優先順位で実行します。
実行するコマンドの重要度、優先度によってコマンドの優先度を変更し、限られた資源を重要な、
あるいは緊急度の高いコマンドから優先的に配分できます。
いくらUNIXがマルチタスクといっても、その処理能力には限界があり、多くのプロセスを実行すれば、
それだけ個々のプロセスの実行速度は低下します。
そこで、すぐには処理が終了しなくてもよいコマンドの優先順位を下げてバックグラウンドで実行すると
バックグラウンドで実行するコマンドが終わるまでフォアグラウンドで実行しているコマンドの応答性など
を向上させることができます。
nice [オプション] [コマンド]
nice値 | 指定されたnice値でコマンドを実行する。(FreeBSD) |
-n nice値 | 指定されたnice値でコマンドを実行する。(Solaris、Linux) |
$ nice +5 find / -name hoge -print & 5低いnice値(低い優先度)でfindコマンドを実行する。 [1] 7994 $ ps l -p 7994 UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND 1003 7994 7647 5 -6 5 360 624 biowai DN p0 0:00.32 / (find) NI=nice値が5低くなっている。
$ nice -5 find / -name hoge -print & 5高いnice値(低い優先度)でfindコマンドを実行する。 [1] 7994 $ ps l -p 7994 UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND 1003 7994 7647 1 -6 0 360 624 biowai D p0 0:00.55 / (find) NI=nice値が一般ユーザなので高くできない。
# nice -5 find / -name hoge -print & [1] 7992 # ps l -p 7992 UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND 0 7992 7959 259 82 -5 360 608 - R< p0 0:00.55 / (find) NI=nice値がスーパーユーザなので高いnice値で実行された。