連載
» 2017年08月17日 05時00分 UPDATE

Linux基本コマンドTips(135):【 renice 】コマンド――実行中のプロセスの優先度を変更する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、実行中のプロセスの優先度を変更する「renice」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は実行中のプロセスの優先度を変更する「renice」コマンドです。

reniceコマンドとは?

 プロセスIDなどを指定して、実行中のプロセスの優先度を変更するコマンドです。複数のプロセスを同時に指定することも可能です。

 コマンド実行時に優先度を指定する場合は「nice」コマンド(第134回)を使用します。



reniceコマンドの書式

renice 優先度 プロセスID

renice 優先度 [オプション]

※[ ]は省略可能な引数を示しています。コマンド名は複数指定可能





reniceの主なオプション

短いオプション 長いオプション 意味
-n 優先度 --priority 優先度 優先度(nice値)を指定する ※1
-p プロセスID --pid プロセスID 対象のプロセスIDを指定する
-g グループID --pgrp グループID 対象プロセスのグループIDを指定する
-u ユーザー --user ユーザー 対象プロセスのユーザーIDまたはユーザー名を指定する

※1 nice値は他のオプションより先に指定する必要がある。




プロセスの優先度を変更する

 「renice -n 値 プロセスID」または「renice +値 プロセスID」で、プロセスの“nice値”を指定した値に変更します。

 nice値とはプロセスの優先度を表す値で、値が大きいほど優先度が低くなります。一般的な値は「-20〜19」なので、例えば「renice -n 100」のように範囲外の値を指定した場合、システムの最大値である「19」がセットされます。

 なお、一般ユーザーの場合、現在のnice値より小さく(優先度を高く)することはできません。特定プロセスの優先度を上げるために、自分が実行している他のプロセスの優先度を下げるといった使い方は可能です。

コマンド実行例

renice 10 9999

(プロセスID「9999」のnice値を10にする)

renice -n 10 -p 9999

(プロセスID「9999」のnice値を10にする)


 画面1では、「sleep 15」をバックグラウンドで実行した後に「renice 8 プロセスID」を実施して、nice値の変化を確認しています。「sleepコマンドは指定した秒数だけ待つ」というコマンドで、実行内容としては特に意味はありません。

 nice値の確認のために、psコマンドを使用しています。「-o」は表示フォーマットを指定するオプションです。nice値はNI欄(列)に表示されています。

 画面2では、niceコマンド経由でこの「sleep 15」を実行して、sleepのプロセスのnice値を「10」にしています(10はniceコマンドの初期値:第134回)。nice値を小さくすることはできないため、「renice 8 プロセスID」は失敗しました。

画面1 画面1 reniceコマンドを実行したところ
画面2 画面2 nice値を10に設定した後、reniceコマンドを実行したところ


プロセス名を使って指定する

 reniceコマンドにはプロセスの名前で指定するオプションはありません。pidofコマンド(第130回)を使い「renice 値 `pidof プロセス名`」とするか、あるいはpgrepコマンド(第131回)を使って「renice 値 `pgrep プロセス名`」のように実行するとよいでしょう。

コマンド実行例

renice 値 `pidof プロセス名`画面3

(プロセスの名前を指定してnice値を変更する)

renice 値 `pgrep プロセス名`画面3

(プロセスの名前を指定してnice値を変更する)


画面3 画面3 プロセス名からプロセスIDを求めた後、reniceコマンドを実行したところ


ユーザー名でプロセスを指定する

 「-u ユーザー名」または「-u ユーザーID」でユーザーを、「-g グループID」でプロセスのグループID ※2を指定して実行できます。なお、一般ユーザーは自分の所有するプロセス以外のnice値は変更できません。プロセスの状態によってはnice値を変更できないこともあります。

※2 psコマンドではPGIDという名前で表示される。「ps -o pid,pgid,nice,stat,tt,user,cmd」あるいは「ps -O pgid」のようにすることで確認可能。同じジョブのプロセスは同じPGIDとなる。


コマンド実行例

renice 15 -u study画面4

(ユーザー「study」のプロセスを「15」に変更する)


画面4 画面4 特定のユーザーのプロセスのnice値をreniceコマンドで設定したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。