[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
nice
: niceness を変更して、コマンドを実行するnice
はプロセスの niceness を表示したり、niceness を変更してコマンドを実行したりする。
niceness は、プロセスがシステム中でどの程度優先的にスケジュールされるかに影響を及ぼす。
(訳注: niceness を「スケジューリング優先度」と訳さない理由については、
三つほど下のパラグラフを御覧いただきたい。)
書式:
nice [option]… [command [arg]…] |
引数を指定しないと、nice
は現在の niceness を表示する。引数に
command を指定した場合は、niceness を調整して、その command を実行する。
デフォルトでは、niceness が 10 増加する。
niceness の値は、最小が -20 で、最大が 19 である (値が小さければ、プロセスの優先度が高くなり、使えるリソースも多くなるが、 その分、他のプロセスの動作が遅くなる。また、値が大きければ、プロセスの優先度が低くなり、 自分自身の動作は遅くなるが、実行中の他のプロセスの速度に与える影響は小さくなる)。 システムによっては、niceness の値の範囲がもっと広いものもあるし、 反対に、上下限の制限がもっときついものもある。サポートされている範囲を越えた niceness を指定すると、 サポートされている値の最小、または最大を使用しようとしているものと見なされる。
niceness をスケジューリング優先度 (scheduling priority) と混同してはならない。
後者は、様々なスレッドをどういう序列で実行するかの予定を組む際に、
その序列をアプリケーション側に決めさせるものである。
優先度とは違って、niceness はスケジューラに対する単なるアドバイスにすぎず、
スケジューラはそれを無視することができるのだ。また、用語について言うと、
POSIX は nice
の動作を nice value という用語で定義している。
この nice value は、ある niceness と 最小の niceness との間の負ではない差である。
nice
コマンドは POSIX に準拠しているものの、
この文書やエラーメッセージでは、従来の習慣との親和性を考慮して、
“niceness” という言葉を使っている。
command は、シェルの組み込みコマンドであってはならない (see section 特殊ビルトイン・ユーティリティ)。
シェルの組み込み機能の nice
やエイリアスのために、
nice
に何の修飾も付けずに対話的に使ったり、スクリプトの中で使ったりすると、
動作がここで述べているものとは違うことがあるかもしれない。
シェルによる干渉を避けるためには、env
経由で nice
を起動すればよい (すなわち、env nice …
のようにだ)。
注意: 現在動作中のプロセスの niceness を変更するには、renice
コマンドを使う必要がある。
このプログラムでは、以下のオプションが使用できる。参照: 共通オプション. オプションはオペランドの前に置かなければならない。
コマンドの niceness を 10 ではなく、adjustment 増加する。
adjustment が負の数の場合、ユーザがしかるべき特権を持っていなければ、
nice
は警告を発する。とは言え、警告を出すだけで、adjustment
として 0 が指定されたかのように振る舞う。
互換性を考慮して、nice
は ‘-adjustment’
というオプションの古い書式もサポートしている。
だが、新しいスクリプトでは、‘-n adjustment’ の方を使うべきである。
nice
がインストールされるのは、
POSIX の setpriority
関数を持っているシステムだけである。
従って、移植を考慮したシステムでは、非 POSIX のプラットフォームに
nice
コマンドがあることを当てにしない方がよい。
終了ステータス:
0: command が指定されなかったので、niceness を出力した。
125: |
対話的ではないプログラムは、niceness を落として (訳注: すなわち、 niceness の値を増やして) 実行すると、都合のよいことがある。
$ nice factor 4611686018427387903 |
nice
は、現在の niceness を表示するので、nice
を通して nice
を起動すれば、それがどんな動作をするか、目の当たりに見ることができる。
デフォルトの動作は、niceness を ‘10’ 増加することである。
$ nice 0 $ nice nice 10 $ nice -n 10 nice 10 |
adjustment は、現在の niceness からいくら増減するかということである。
次の例では、最初の nice
が、二番目の nice
を
niceness 10 で実行し、二番目の nice
は、niceness
をさらに 3 増やして、三番目の nice
を実行している。
$ nice nice -n 3 nice 13 |
サポートされている範囲より大きい niceness を指定するのは、 サポートされている最大値を指定するのと同じことである。
$ nice -n 10000000000 nice 19 |
特権ユーザだけが niceness の値を下げて、プロセスを実行できる。
$ nice -n -1 nice nice: cannot set niceness: Permission denied 0 $ sudo nice -n -1 nice -1 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on June 7, 2022 using texi2html 1.82.