名前

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 は、 perioddeadline にコピーする。 --sched-runtime が指定されなかった場合は、 deadlineruntime にコピーする。 これはつまり、 最低でも --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_FIFOSCHED_OTHERSCHED_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/>.