本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、優先度を指定してコマンドを実行する「nice」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、優先度を指定してコマンドを実行する「nice」コマンドです。
「nice」は実行時の優先度を指定してコマンドを実行します。「nice コマンド名」とすると、コマンド実行時の優先度を下げます。
バックアップや検索用インデックスの作成など、“多少時間がかかってもよいからシステムの負荷を高めずに実行したい”コマンドを動かすときに便利です。
一般ユーザーは優先度を下げることしかできませんが、スーパーユーザー(root)であれば、優先度を高めてコマンドを実行できます。
nice [オプション] [実行したいコマンドとそのオプション]
※[ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
-n 優先度 | --adjustment=優先度 | 優先度(-20〜19:本文参照)を指定する ※1 |
※1「nice -10 コマンド」のような指定方法も可能だが、この場合の優先度は「-10」ではなく「10」(「nice -n 10 コマンド」相当)となる。
「nice -n 優先度 コマンド」で、優先度を下げてから、コマンドを実行します。
一般ユーザーは、優先度を「0(通常)」から「19(最低)」まで指定可能です※2。値を指定しなかった場合の優先度は「+10」です。
※2 設定ファイル「/etc/security/limits.conf」などで変更することが可能。
優先度の値を“nice値”とも言います。他のプロセスに対してどのくらいniceか、という値で、大きいほど優先度が低くなります※3。
※3 今から実行するコマンドに対する優先度を下げる(CPU時間の割り当てを少なくする)ことで、他のプロセスに対してniceに(親切に)働いたことになる。
コメント名を後ろに付けず、「nice」と実行すると、niceを指定しなかった場合の優先度が表示されます。デフォルトは「0」です。
実行中のプロセスのnice値は、psコマンド(第6回)やtopコマンド(第123回)で確認できます。例えば、psコマンドでnice値を表示するには「ps -o pid,nice,stat,tt,user,cmd」のように表示内容を指定するか、「ps -O nice」のように、表示項目にnice値を追加します。psコマンド、topコマンド、いずれも「NI」の列にある数値がnice値です。
nice コマンド名(画面2)
(優先度を下げてコマンドを実行)
nice -n 優先度 コマンド名(画面3)
(優先度を指定してコマンドを実行。一般ユーザーは0〜19まで指定可能で、値が大きいと優先度が低くなる)
画面1〜3では「sleep 15」をniceコマンド経由で実行することにより、nice値の変化を確認しています。「sleepコマンドは指定した秒数だけ待つ」というコマンド(第66回)で実行内容としては特に意味はありません。
実行直後にpsコマンドでnice値を確認したいので末尾に「&」を付けて、バックグラウンドで実行しています。
なお、画面1のようなデフォルトのnice値は、親プロセスから引き継ぎます。
画面4では「nice bash」で優先度を10下げた状態でbashを実行し、そこで先ほどと同じsleepコマンドを実行しています。
スーパーユーザーの場合、優先度を上げてコマンドを実行することができます。この場合、「-n」でマイナスの値を指定します。一般に、最も優先度が高くなる値は「-20」です。
nice -n -10 コマンド
(優先度を上げてコマンドを実行する)
画面5では、「yum -y update」(システムのアップデート:第45回)を、niceを使って優先度10上げた状態で実行しています。
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.