Unix ps -l 优先级

Gro*_*ook 2 linux unix priority ps

为什么 unix ps -l whows 列“PRI”中的一个数字,但同时 ps -o pri 显示另一个数字?

这些进程的 PS cpu 和 nice 为零

Ran*_*832 7

在 linux 中procps,标有“PRI”的列ps -l-o opri. 检查output.c显示了六个不同的优先级输出类型:

// "priority"         (was -20..20, now -100..39)
// "intpri" and "opri" (was 39..79, now  -40..99)
// "pri_foo"   --  match up w/ nice values of sleeping processes (-120..19)
// "pri_bar"   --  makes RT pri show as negative       (-99..40)
// "pri_baz"   --  the kernel's ->prio value, as of Linux 2.6.8     (1..140)
// "pri"               (was 20..60, now    0..139)
// "pri_api"   --  match up w/ RT API    (-40..99)
Run Code Online (Sandbox Code Playgroud)

显示所有这些:

ps -o pid,priority,opri,pri_foo,pri_bar,pri_baz,pri,pri_api,comm

  PID PRI PRI FOO BAR BAZ PRI API COMMAND
 2201  20  80   0  21 120  19 -21 zsh
 2762  30  90  10  31 130   9 -31 cat
 2826  20  80   0  21 120  19 -21 ps
Run Code Online (Sandbox Code Playgroud)

(catnice cat /dev/zero > /dev/null)

-o pri值不适用于 UNIX 标准的“PRI”列,因为较高的数字必然意味着较低的优先级,因此不使用它。我相信这两列是从solaris复制的。该-o pri列在内部用于ps -lc.