Linuxコマンド · 1 min read · Dec 22, 2025

初心者のためのLinux chrtコマンドチュートリアル(5つの例)

プロセスは、実行中のLinuxシステムのコアを形成します。プログラムがプロセスに変換される(実行されるとき)と、多くの属性が設定されます。時には、これらの属性を実行時に変更したい場合があります。これを可能にするコマンドラインツールchrtがあります。

このチュートリアルでは、理解しやすい例を使ってこのユーティリティについて説明します。しかしその前に、この記事のすべての例はUbuntu 18.04 LTSマシンでテストされていることを述べておく価値があります。

Linux chrtコマンド

前述の導入部分で述べたように、chrtコマンドはプロセスのリアルタイム属性を操作することができます。以下がその構文です:

chrt [options] -p [prio] pid

そして、ツールのマニュアルページは次のように説明しています:

       chrt sets or retrieves the real-time scheduling attributes of an exist?  
       ing pid, or runs command with the given attributes.  Both  policy  (one  
       of  SCHED_OTHER,  SCHED_FIFO, SCHED_RR, SCHED_BATCH, or SCHED_IDLE) and  
       priority can be set and retrieved.  
  
       The SCHED_BATCH policy is supported since Linux 2.6.16.  The SCHED_IDLE  
       policy is supported since Linux 2.6.23.  
  
       The  SCHED_RESET_ON_FORK  flag  for policies SCHED_RR and SCHED_FIFO is  
       supported since Linux 2.6.31.

以下は、chrtコマンドの動作を理解するのに役立つQ&A形式の例です。

Q1. chrtコマンドの使い方は?

geditプロセスのスケジューリングポリシーや優先度を操作したいとします。最初に行うべきことは、このプロセスのプロセスIDを取得することです。これはpidofコマンドを使用して行うことができます。

pidof gedit

私のシステムでは、例えば、上記のコマンドは出力としてpid ‘6063’を返しました。次に、geditプロセスの現在のスケジューリングポリシーと優先度を取得するには、次のようにchrtを使用します:

chrt -p 6063

そして、このコマンドが私のシステムで生成した出力は次のとおりです:

pid 6063's current scheduling policy: SCHED_OTHER  
pid 6063's current scheduling priority: 0

Q2. chrtに最小/最大の有効優先度を表示させるには?

これは、-mコマンドラインオプションを使用して行うことができます。

chrt -m

例えば、私たちのシステムでは、上記のコマンドは次の出力を生成しました:

SCHED_OTHER min/max priority    : 0/0  
SCHED_FIFO min/max priority    : 1/99  
SCHED_RR min/max priority    : 1/99  
SCHED_BATCH min/max priority    : 0/0  
SCHED_IDLE min/max priority    : 0/0

スケジューリングポリシーを設定する際には、これらの値を参照する必要があります。

Q3. スケジューリングポリシーをSCHED_BATCHに設定するには?

これは、-bコマンドラインオプションを使用して行うことができます。

例えば:

chrt -b -p 0 6063

次に、次のコマンドを使用してgeditのスケジューリングポリシーを再確認すると:

chrt -p 6063

以下のような出力が得られ、行った変更が適用されたことを示します:

pid 6063's current scheduling policy: SCHED_BATCH  
pid 6063's current scheduling priority: 0

Q4. スケジューリングポリシーをSCHED_FIFOに設定するには?

これは、-fコマンドラインオプションを使用して行うことができます。

chrt -f -p 20 6063

前のQ&Aと同様に、chrt -pコマンドを使用して変更を確認できます。-fコマンドラインオプションを使用するには、root権限が必要な場合がありますので注意してください。

Q5. スケジューリングポリシーをSCHED_OTHERに設定するには?

これは、-oコマンドラインオプションを使用して行うことができます。

chrt -o -p 0 6063

確認するには、chrt -pコマンドを使用します。

chrt -p 6063

私の場合の出力は次のとおりです:

pid 6063's current scheduling policy: SCHED_OTHER  
pid 6063's current scheduling priority: 0

結論

確かに、chrtコマンドは毎日使用するようなツールではありません。実際、システム管理やカーネルスケジューリング関連の作業に従事しない限り、必要ないかもしれません。しかし、このようなツールが存在することを知っておく価値はあります。chrtに関する詳細情報は、そのマニュアルページを参照してください。

Share: X/Twitter LinkedIn

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

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