priocntl(1) on Solnix vs Linux and the BSDs
priocntl is the illumos command at /usr/bin/priocntl. It displays or sets the scheduling class and class-specific parameters of processes, selected by idtype and idlist, or runs a command under chosen parameters. Linux chrt, FreeBSD rtprio and NetBSD schedctl are different-name counterparts with a much narrower model: they cover only real-time and idle priorities or POSIX policies, and have no process-set selection.
The manual pages
- Solnix: priocntl(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: chrt(1) util-linux-2.42.3 (different command, similar job)
- FreeBSD: rtprio(1) 15.1-RELEASE (different command, similar job)
- NetBSD: schedctl(8) 11.0 (different command, similar job)
What Solnix runs
A default Solnix system runs the illumos priocntl at /usr/bin/priocntl. No other variants are shipped. The bundle shows only part of the page: the class-specific option sections (Real-Time Class and the others) are trimmed, so their option letters and ranges are not described here.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD, NetBSD | scheduling model | Solnix has five named classes (RT, TS, IA, FSS, FX), each with its own class-specific options, plus an internal sys class. Linux chrt works with SCHED_FIFO, SCHED_OTHER, SCHED_RR and others. NetBSD schedctl -C takes SCHED_OTHER, SCHED_FIFO or SCHED_RR. FreeBSD rtprio has realtime and idle priorities.Source: Solnix priocntl(1) DESCRIPTION, -c class; Linux chrt(1) NOTES; NetBSD schedctl(8) -C; FreeBSD rtprio(1) DESCRIPTION |
| Linux, FreeBSD, NetBSD | mode selection | Solnix priocntl uses one mode flag: -l (configuration), -d (display), -s (set) or -e (execute a command). chrt selects by presence of --pid and a priority, rtprio by argument form, and schedctl by -p versus a command. None of them has a separate display flag like -d.Source: Solnix priocntl(1) SYNOPSIS; Linux chrt(1) SYNOPSIS, -p; FreeBSD rtprio(1) SYNOPSIS; NetBSD schedctl(8) SYNOPSIS |
| Linux, FreeBSD, NetBSD | selecting many processes | Solnix -i idtype with an idlist can target pid, ppid, pgid, sid, taskid, class, uid, gid, projid, zoneid, ctid or all. chrt, rtprio and schedctl take a single PID, and schedctl can narrow to one thread with -t lid.Source: Solnix priocntl(1) DESCRIPTION, -i idtype; Linux chrt(1) SYNOPSIS; FreeBSD rtprio(1) SYNOPSIS; NetBSD schedctl(8) -p, -t |
| Linux, FreeBSD, NetBSD | default target | With -d or -s and no -i, Solnix assumes idtype pid. With no idlist, an idtype of pid and similar refers to the priocntl process itself. FreeBSD rtprio with no arguments reports the current process's priority.Source: Solnix priocntl(1) OPTIONS -i, DESCRIPTION; FreeBSD rtprio(1) DESCRIPTION |
| FreeBSD, NetBSD | who may change parameters | On Solnix a user may change a process when real or effective UID/GID match the target's, or when effective UID is super-user; individual classes can add requirements. FreeBSD and NetBSD restrict changes mostly to root or the super-user. Source: Solnix priocntl(1) DESCRIPTION (permissions); FreeBSD rtprio(1) DESCRIPTION; NetBSD schedctl(8) DESCRIPTION |
| Linux, FreeBSD, NetBSD | error handling over a process set | On Solnix, after a permission error priocntl prints a message and continues through the set. After any other error it prints a message and exits at once. The order of processing is implementation-specific. The counterpart pages do not describe set processing. Source: Solnix priocntl(1) DESCRIPTION; Linux chrt(1); FreeBSD rtprio(1); NetBSD schedctl(8) |
| Linux, FreeBSD, NetBSD | priority numbering | FreeBSD rtprio priority runs 0 to RTP_PRIO_MAX (usually 31) with 0 the highest. NetBSD schedctl -P runs 0 to 63, and cannot be set for SCHED_OTHER. Linux chrt -m prints the valid range. The Solnix ranges are in the class sections, which the bundle trims.Source: FreeBSD rtprio(1) DESCRIPTION; NetBSD schedctl(8) -P; Linux chrt(1) -m; Solnix priocntl(1) (class sections trimmed) |
| Linux, NetBSD | CPU affinity | NetBSD schedctl -A sets CPU affinity, and -1 clears it. The priocntl synopsis has no affinity option. Linux chrt does not cover affinity either: its SEE ALSO points to taskset(1).Source: NetBSD schedctl(8) -A; Solnix priocntl(1) SYNOPSIS; Linux chrt(1) SEE ALSO |
| Linux, FreeBSD, NetBSD | class configuration and init | On Solnix, -c class automatically configures the class if it is not yet configured. The init process (PID 1) can be changed only with idtype pid and idlist 1. Processes cannot be moved into the sys class. The counterpart pages say nothing similar.Source: Solnix priocntl(1) OPTIONS -c, DESCRIPTION |
| FreeBSD | exit status | FreeBSD rtprio exits with the command's status when it runs one, otherwise 0 on success and 1 on any other error. The priocntl text in the bundle has no EXIT STATUS section, so its exit values are not shown here. Source: FreeBSD rtprio(1) EXIT STATUS; Solnix priocntl(1) (no EXIT STATUS in bundle) |
Everyday tasks
| Task | Solnix | Linux | FreeBSD | NetBSD |
|---|---|---|---|---|
| show scheduling configuration or valid priorities | priocntl -l | chrt -m | — | — |
| show a process's scheduling parameters | priocntl -d -i pid PID | chrt -p PID | rtprio PID | schedctl -p PID |
| change a running process | priocntl -s -c class [class options] -i pid PID | chrt -p [options] priority PID | rtprio priority -PID | schedctl -C class -P pri -p PID |
| run a command with given scheduling | priocntl -e -c class [class options] command | chrt [options] priority command | rtprio priority command | schedctl -C class -P pri command |
| run a command as a normal, non-realtime process | priocntl -e -c TS command | — | rtprio -t command | — |
Standards
- POSIX: priocntl is not a POSIX.1-2024 utility.
- Linux: chrt(1) 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.
Writing portable scripts
- Do not script class changes portably with one command. Pick the tool by presence (priocntl, chrt, rtprio, schedctl), because option letters and models differ.
- Avoid real-time classes in scripts unless needed. The Solnix page warns that a runnable real-time process runs before any other, and FreeBSD warns you can lock yourself out.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.