Unix ps -l 优先级

Unix ps -l 优先级

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

PS 这些进程的 cpu 和 nice 为零

答案1

在 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)

显示全部内容:

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

catnice cat /dev/zero > /dev/null

-o pri值不适合 UNIX 标准的“PRI”列,因为数字越大,优先级越低,因此不使用它。我相信这两列是从 solaris 复制而来的。该-o pri列在内部用于 的“PRI”列ps -lc

相关内容