chrt - プロセスのリアルタイム属性を操作する
chrt [options] priority command argument ...
chrt [options] -p [priority] PID
chrt は、 既存の PID に対するリアルタイムのスケジュール属性を設定あるいは取得する。 また指定されたその属性を使って command を実行する。
-o, --other
スケジューリングポリシーを SCHED_OTHER (タイムシェアリングスケジューリング) に設定する。 これは、 デフォルトの Linux スケジューリングポリシーである。
-f, --fifo
スケジューリングポリシーを SCHED_FIFO (ファーストイン、ファーストアウト) に設定する。
-r, --rr
スケジューリングポリシーを SCHED_RR (ラウンドロビンスケジューリング) に設定する。 ポリシーが定義されていなかった場合は、 デフォルトとして SCHED_RR が用いられる。
-b, --batch
スケジューリングポリシーを SCHED_BATCH (スケジューリングバッチプロセス) に設定する。 Linux 固有のものであり、 2.6.16 からサポートされている。 優先度引数は、 ゼロに設定する必要がある。
-i, --idle
スケジューリングポリシーを SCHED_IDLE (優先度の非常に低いジョブスケジューリング) に設定する。 Linux 固有のものであり、 2.6.23 からサポートされている。 優先度引数は、 ゼロに設定する必要がある。
-d, --deadline
スケジューリングポリシーを SCHED_DEADLINE (散発タスクモデルである、 デッドライン (deadline) スケジューリング) に設定する。Linux 固有のものであり、 3.14 からサポートされている。 優先度引数は、 ゼロに設定する必要がある。 --sched-runtime、 --sched-deadline、 --sched-period も参照のこと。 カーネルが要求するオプション間の関係は、 ランタイム ⇐ デッドライン ⇐ ピリオドである。 --sched-deadline が指定されなかった場合、 chrt は、 period を deadline にコピーする。 --sched-runtime が指定されなかった場合は、 deadline を runtime にコピーする。 これはつまり、 最低でも --sched-period は指定しなければならないことを意味する。 詳しくは sched(7) を参照のこと。
-T, --sched-runtime nanoseconds
SCHED_DEADLINE ポリシーに対して、 ランタイムパラメーター (runtime parameter) を指定する (Linux 固有)。
-P, --sched-period nanoseconds
SCHED_DEADLINE ポリシーに対して、 ピリオドパラメーター (period parameter) を指定する (Linux 固有)。
-D, --sched-deadline nanoseconds
SCHED_DEADLINE ポリシーに対して、 デッドラインパラメーターを指定する (Linux 固有)。
-R, --reset-on-fork
SCHED_RESET_ON_FORK フラグ、 または SCHED_FLAG_RESET_ON_FORK フラグを用いる。 Linux 固有であり、 2.6.31 からサポートされている。
各スレッドには、 スケジューリングフラグ reset-on-fork がある。 このフラグが設定されていると、 fork(2) によって生成された子プロセスには、 特権的なスケジューリングポリシーは継承されない。 reset-on-fork が有効化されている場合に、 そのスレッドがケーパビリティー CAP_SYS_NICE を持った場合にのみ、 フラグをリセットすることができる。 このフラグは、 fork(2) によって生成された子プロセスでは、 無効化されている。
さらに言うと、 reset-on-fork フラグが設定されている場合、 ここから続けて生成される子プロセスに対しては、 以下の規則が適用される。
·
呼び出すスレッドは、 スケジューリングポリシーとして SCHED_FIFO または SCHED_RR を持つ。 このポリシーでは、 子プロセス内の SCHED_OTHER はリセットされる。
·
呼び出すプロセスが、 負の nice 値を持つ場合、 子プロセスにおける nice 値はゼロにリセットされる。
-a, --all-tasks
指定された PID に対応するすべてのタスク (スレッド) のスケジューリング属性を、 設定または取得する。
-m, --max
有効な優先度の最大と最小を表示して、 終了する。
-p, --pid
既存の PID に対しての操作を行い、 新たなタスクの起動は行わない。
-v, --verbose
ステータス情報を表示する。
-h, --help
ヘルプを表示して終了する。
-V, --version
バージョンを表示して終了する。
デフォルトの動作は、 新たなコマンドを実行することである。
chrt priority command [arguments]
また、 既存タスクからリアルタイム属性を取得することもできる。
chrt -p PID
設定の場合は、以下のようにする。
chrt -r -p priority PID
プロセスのスケジューリング属性を変更するには、 ユーザーが CAP_SYS_NICE の権限を有していなければならない。 スケジューリング情報の取得は、 どのユーザーでも可能である。
SCHED_FIFO、 SCHED_OTHER、 SCHED_RR だけが、 POSIX 1003.1b プロセススケジューリングに規定されている。 その他のスケジューリング属性は、 他のシステムでは無視される場合がある。
Linux のデフォルトのスケジューリングポリシーは SCHED_OTHER である。
nice(1), renice(1), taskset(1), sched(7)
Linux のスケジューリングスキームの説明は、 sched_setscheduler(2) を参照のこと。
バグ報告は、 以下にある issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.
chrt コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.