Почему unix ps -l показывает один номер в столбце "PRI", но в то же время ps -o pri показывает другой номер?
PS процессор и милая ноль для этих процессов
В 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
(cat
nice cat /dev/zero > /dev/null
)
Значение -o pri
не подходит для столбца "PRI" стандарта UNIX, поскольку более высокие числа должны означать более низкий приоритет, поэтому оно не используется. Я считаю, что эти две колонки скопированы с соляриса. Столбец -o pri
используется для столбца "PRI" команды ps -lc
.