Unix ps -l priority

2

Por que o unix ps -l exibe um número na coluna "PRI", mas ao mesmo tempo o ps -o pri mostra outro número?

P.S. cpu e nice são zero para esses processos

    
por Grook 21.05.2011 / 20:03

1 resposta

7

No linux procps , a coluna rotulada "PRI" em ps -l é -o opri . Examinando output.c mostra meia dúzia de tipos diferentes de saída prioritária:

// "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)

Mostre todos eles com:

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 valor -o pri não é adequado para a coluna "PRI" do padrão UNIX, uma vez que números mais altos devem significar prioridade mais baixa, portanto, não é usado. Eu acredito que estas duas colunas são copiadas da solaris. A coluna -o pri é usada internamente para a coluna "PRI" de ps -lc .

    
por 21.05.2011 / 20:50