Estou um pouco confuso sobre o status de um processo que tenho. Parece assim:
$ ps -eal | head -n 1 ; ps -eal | grep perf
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 7843 7842 0 80 0 - 10838 - pts/6 00:00:00 perf
- assim, o status é S
, que a página man
descreve como "S sleep interrompível (aguardando a conclusão de um evento)" , está aguardando algum evento.
Eu suponho que ele está listado em algum canal de espera.
Mas o canal de espera é: WCHAN -
.
Qual man
página descreve com "Tarefas em execução exibirão um traço ('-') nesta coluna."
Além disso, /proc/7843/status
contém State: S (sleeping)
e /proc/7843/wchan
contém 0
. Eu acho que 0
in proc//wchan
diz a mesma coisa - que a tarefa não espera nada.
Eu entendo mal algo ou eles contradizem um ao outro?
E a tarefa, na verdade, não é executada - não acho que -
in wchan
esteja esperando para ser agendado.
A saída wchan
pode estar de alguma forma configurada incorretamente? Eu corro o Ubuntu 14.04, kernel 3.13.0-86-genérico.
Verificando outro processo mostra:
$ ps -eal | head -n 1 ; ps -eal | grep fish
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 2407 2399 0 80 0 - 47675 wait pts/0 00:00:07 fish
1 S 1000 2409 1 0 80 0 - 5500 poll_s ? 00:00:00 fishd
0 S 1000 2507 2399 0 80 0 - 45333 poll_s pts/3 00:00:00 fish
0 S 1000 2567 1 0 80 0 - 8366 wait ? 00:00:00 fish
- então aqui WCHAN
está ok.
Tags process ps linux-kernel