chrt1
Manipulate the real-time attributes of a process
Usage
chrt [options]
[priority]
command
[argument ...]
chrt --pid
[options]
[priority]
PID
Overview
chrt sets or retrieves the real-time scheduling attributes of an existing PID, or runs command with the given attributes.
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, theSCHED_RRis 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-deadlineand--sched-period. The relation between the options required by the kernel is runtime ⇐ deadline ⇐ period.chrtcopies period to deadline if--sched-deadlineis not specified and deadline to runtime if--sched-runtimeis not specified. It means that at least--sched-periodhas 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_ONandCONFIG_BPF_JIT_DEFAULT_ON.
Options
-
-T, --sched-runtime nanoseconds -
Specifies runtime parameter for
SCHED_DEADLINEand custom slice length forSCHED_OTHERandSCHED_BATCHpolicies (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_DEADLINEpolicy (Linux-specific). Note that the kernel’s lower limit is 100 microseconds.
-
-D, --sched-deadline nanoseconds -
Specifies deadline parameter for
SCHED_DEADLINEpolicy (Linux-specific).
-
-R, --reset-on-fork -
Use
SCHED_RESET_ON_FORKorSCHED_FLAG_RESET_ON_FORKflag. 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_NICEcapability. 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_FIFOorSCHED_RR, the policy is reset toSCHED_OTHERin 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.
Releases
12 releases since Debian 3.1 (Sarge); the text changed 10 times.
--all-tasks since Debian 7 (Wheezy);
--batch since Arch Linux 2026-11-01;
--deadline since Arch Linux 2026-11-01;
--ext since Arch Linux 2026-11-01;
--fifo since Arch Linux 2026-11-01;
--idle since Arch Linux 2026-11-01;
--other since Arch Linux 2026-11-01;
--reset-on-fork since Debian 7 (Wheezy);
--rr since Arch Linux 2026-11-01;
--sched-deadline since Debian 9 (Stretch);
--sched-period since Debian 9 (Stretch);
--sched-runtime since Debian 9 (Stretch);
--verbose since Debian 7 (Wheezy);
-D since Debian 9 (Stretch);
-P since Debian 9 (Stretch);
-R since Debian 7 (Wheezy);
-T since Debian 9 (Stretch);
-V since Debian 7 (Wheezy);
-a since Debian 7 (Wheezy);
-b since Arch Linux 2026-11-01;
-d since Arch Linux 2026-11-01;
-e since Arch Linux 2026-11-01;
-f since Arch Linux 2026-11-01;
-i since Arch Linux 2026-11-01;
-o since Arch Linux 2026-11-01;
-r since Arch Linux 2026-11-01.