CHRT(1)

NAME
chrt - manipulate the real-time attributes of a process

SYNOPSIS

chrt [options] [priority] command [argument...]

chrt --pid [options] [priority] PID

DESCRIPTION

chrt sets or retrieves the real-time scheduling attributes of an existing PID, or runs command with the given attributes.

POLICY OPTIONS

-o, --other
    Set scheduling policy to SCHED_OTHER (time-sharing scheduling). This is the default Linux scheduling policy. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.

-f, --fifo
    Set scheduling policy to SCHED_FIFO (first in-first out).

-r, --rr
    Set scheduling policy to SCHED_RR (round-robin scheduling). When no policy is defined, the SCHED_RR is used as the default.

-b, --batch
    Set scheduling policy to SCHED_BATCH (scheduling batch processes). Linux-specific, supported since 2.6.16. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.

-i, --idle
    Set scheduling policy to SCHED_IDLE (scheduling very low priority jobs). Linux-specific, supported since 2.6.23. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.

-d, --deadline
    Set scheduling policy to SCHED_DEADLINE (sporadic task model deadline scheduling). Linux-specific, supported since 3.14. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero. See also --sched-runtime, --sched-deadline and --sched-period. The relation between the options required by the kernel is runtime ⇐ deadline ⇐ period. chrt copies period to deadline if --sched-deadline is not specified and deadline to runtime if --sched-runtime is not specified. It means that at least --sched-period has to be specified. See sched(7) for more details.

-e, --ext
    Set scheduling policy to SCHED_EXT (BPF program-defined scheduling). Linux-specific, supported since 6.12. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero. Note that for the policy to be recognized, the following kernel configuration options need to be enabled: CONFIG_BPF, CONFIG_SCHED_CLASS_EXT, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_DEBUG_INFO_BTF, CONFIG_BPF_JIT_ALWAYS_ON and CONFIG_BPF_JIT_DEFAULT_ON.

SCHEDULING OPTIONS

-T, --sched-runtime nanoseconds
    Specifies runtime parameter for SCHED_DEADLINE and custom slice length for SCHED_OTHER and SCHED_BATCH policies (Linux-specific). Note that custom slice length via the runtime parameter is supported since Linux 6.12.

-P, --sched-period nanoseconds
    Specifies period parameter for SCHED_DEADLINE policy (Linux-specific). Note that the kernel’s lower limit is 100 microseconds.

-D, --sched-deadline nanoseconds
    Specifies deadline parameter for SCHED_DEADLINE policy (Linux-specific).

-R, --reset-on-fork
    Use SCHED_RESET_ON_FORK or SCHED_FLAG_RESET_ON_FORK flag. Linux-specific, supported since 2.6.31.

    Each thread has a reset-on-fork scheduling flag. When this flag is set, children created by fork(2) do not inherit privileged scheduling policies. After the reset-on-fork flag has been enabled, it can be reset only if the thread has the CAP_SYS_NICE capability. This flag is disabled in child processes created by fork(2).

    More precisely, if the reset-on-fork flag is set, the following rules apply for subsequently created children:

        • If the calling thread has a scheduling policy of SCHED_FIFO or SCHED_RR, the policy is reset to SCHED_OTHER in child processes.

        • If the calling process has a negative nice value, the nice value is reset to zero in child processes.

OPTIONS

-a, --all-tasks
    Set or retrieve the scheduling attributes of all the tasks (threads) for a given PID.

-m, --max
    Show minimum and maximum valid priorities, then exit.

-p, --pid
    Operate on an existing PID and do not launch a new task.

-v, --verbose
    Show status information.

-h, --help
    Display help text and exit.

-V, --version
    Display version and exit.

EXAMPLES

The default behavior is to run a new command:

    chrt priority command [arguments]

You can also retrieve the real-time attributes of an existing task:

    chrt --pid PID

Or set them:

    chrt --pid policy-option priority PID

For example, to set the scheduling policy to SCHED_RR (round-robin) and the priority to 30 for process 1234:

    chrt --pid -r 30 1234

Reset priorities to default for a process:

    chrt --pid -o 0 PID

Set a custom slice of 1 ms for a SCHED_OTHER task (priority is optional for policies other than SCHED_FIFO and SCHED_RR):

    chrt --pid -o -T 1000000 PID

See sched(7) for a detailed discussion of the different scheduler classes and how they interact.

PERMISSIONS

A user must possess CAP_SYS_NICE to change the scheduling attributes of a process. Any user can retrieve the scheduling information.

NOTES

Only SCHED_FIFO, SCHED_OTHER and SCHED_RR are part of POSIX 1003.1b Process Scheduling. The other scheduling attributes may be ignored on some systems.

Linux' default scheduling policy is SCHED_OTHER.

AUTHORS

SEE ALSO

nice(1), renice(1), taskset(1), sched(7)

See sched_setscheduler(2) for a description of the Linux scheduling scheme.

REPORTING BUGS

For bug reports, use the

AVAILABILITY

The chrt command is part of the util-linux package which can be downloaded from