Linux, コマンド · 1 min read · Sep 19, 2025

Linux nice と renice コマンドのチュートリアル (7 つの例)

Linux コマンドラインの力は、コマンドラインツールを使用してプロセスのスケジューリング優先度を簡単に調整できるという事実から測ることができます。はい、それは可能であり、このチュートリアルでは nicerenice ユーティリティを使用してそれを行う方法について説明します。

しかし、その前に、この文書のすべての例は Ubuntu 16.04LTS システムでテストされていることを言及する価値があります。

Linux nice と renice コマンド

nice コマンドは、修正されたスケジューリング優先度でプログラム/プロセスを実行できるようにしますが、renice コマンドは、すでに実行中のプロセスのスケジューリング優先度を変更することができます。これらのコマンドの一般的な構文は次のとおりです:

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

それぞれの man ページには次のように記載されています:

Nice:   
 COMMAND を調整された niceness で実行します。これはプロセスのスケジューリングに影響します。COMMAND がない場合、現在の niceness を表示します。Niceness 値は -20(プロセスに最も好意的)から 19(プロセスに最も好意的でない)までの範囲です。
Renice:  
 Renice は、1 つ以上の実行中のプロセスのスケジューリング優先度を変更します。次の who パラメータはプロセス ID、プロセスグループ ID、またはユーザー名として解釈されます。プロセスグループを renice すると、プロセスグループ内のすべてのプロセスのスケジューリング優先度が変更されます。ユーザーを renice すると、そのユーザーが所有するすべてのプロセスのスケジューリング優先度が変更されます。デフォルトでは、影響を受けるプロセスはそのプロセス ID で指定されます。

以下は、これらのツールがどのように機能するかをよりよく理解するための Q&A スタイルの例です。

Q1. 実行中のプログラム/プロセスの niceness を確認するには?

はい、変更する前に既存のスケジューリング優先度を確認する方法を知っておくべきです。実行しようとしているプロセスに関しては、デフォルトのスケジューリング優先度は常に 0 であることを知っておく必要があります。

たとえば、次のプロセスを実行しました:

./test-new

次のコマンドを使用して優先度を確認しました:

ps -lu himanshu | grep test-new

ここで、’himanshu’ は ‘test-new’ プロセスを所有するユーザーです。上記のコマンドが生成した出力は次のとおりです:

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

8 番目の列の値が nice 値であり、見ての通り、ゼロです。

Q2. nice コマンドはどのように機能しますか?

では、nice コマンドがどのように機能するかというと、簡単です - 次のようにツールを使用します:

nice -PRIORITY COMMAND

たとえば、スケジューリング優先度を 10 にしたい場合、次のようにできます:

nice -10 ./test-new

この場合の ps コマンドの出力は次のとおりで、優先度が 10 に変更されたことを確認しています。

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

Q3. nice を負の値で機能させるには?

冒頭で述べたように、niceness 値は -20 から 19 の範囲で、前者が最も好意的で、後者が最も好意的でないです。プロセスに負の nice 値を関連付けたい場合は、ダブルハイフンを使用する必要があります。

たとえば、

sudo nice --10 ./test-new

プロセスに負の nice 値を関連付けるには、root 権限が必要です。このため、niceness を確認するための ps コマンドには、他のユーザー名の代わりに ‘root’ が含まれている必要があります。

$ ps -lu root | grep test-new  

このコマンドが生成した出力は次のとおりです:

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

プロセスが現在 -10 の nice 値で実行されていることがわかります。

Q4. niceness に設定された整数値を追加するには?

-n コマンドラインオプションを使用して、nice 値を調整できます。これにより、niceness に設定された整数値が追加されます。デフォルトでは、この設定値は 10 ですが、異なる値を渡すこともできます。

-n, --adjustment=N

たとえば:

nice --adjustment=5 ./test-new

この場合の ps コマンドが生成した出力は次のとおりです:

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

したがって、優先度 5 が設定されたことがわかります。

Q5. 実行中のプロセスの優先度を変更するには?

nice コマンドはプログラムを起動する際に使用されますが、renice コマンドは実行中のプロセスの優先度を変更することができます。たとえば、すでに実行中の ‘test-new’ プロセスの優先度を 5 から 15 に変更する方法は次のとおりです。

renice -n 15 -p 7314

-p 引数はプロセス ID 用です。上記のコマンドが生成した出力は次のとおりです:

7314 (プロセス ID) 古い優先度 5、新しい優先度 15

そして、nice 値は確かに 15 に変更されました。

Q6. グループに属するすべてのプロセスの優先度を変更するには?

これには -g オプションを使用できます。たとえば:

renice -n 20 -g howtoforge

上記のコマンドは、’howtoforge’ グループに属するすべてのプロセスの優先度を変更します。

Q7. ユーザーに属するすべてのプロセスの優先度を変更するには?

ユーザーに関連付けられたすべてのプログラムの優先度を変更するには、-u オプションを使用します。たとえば:

renice -n 5 -u himanshu

もちろん、通常の Linux コマンドラインユーザーは、これらのツールが必要な状況に遭遇することはあまりありませんが、重要なコマンドラインツールについての知識を持っていることは常に良いことです。nice と renice はその中に含まれています。良いことは、これらに関連する学習曲線は全く急ではないということです。ここで大部分のオプションについてすでに説明しました。これらのユーティリティに関する詳細情報については、man ページを参照してください - こちらとこちら。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。