Por que o comando “w” informa um número errado de usuários logados?

Por que o comando “w” informa um número errado de usuários logados?

Eu entrei no tty6 e depois desconectei. Agora, executar o wcomando a partir de um terminal interno unityfornece a seguinte saída:

mark@mark-Latitude-D620:~$ w
19:27:19 up  2:40,  3 users,  load average: 0.41, 0.61, 0.46
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
mark     tty7                      16:47    2:39m  5:06   0.22s gnome-session -
mark     pts/2    :0.0             19:13    7.00s  0.30s  0.00s w

O comando não deveria listar apenas os usuários logados? Estou usando o Ubuntu 12.10.

Editar

Observe que o wcomando informa que 3 usuários estão logados (no cabeçalho), mas mostra apenas 2 entradas.

Responder1

Não há nada de surpreendente nesta wsaída. Se você olhar a segunda coluna sob o TTYtítulo, verá que os dois logins são de tty7(não tty6!) e pts/2. Agora tty7é o seu login gráfico (veja a WHATcoluna) e pts/2é um dispositivo pseudo-terminal que é o emulador de terminal que você abriu para executar o wcomando (novamente, veja a WHATcoluna).

Atualizar

Parece que o número de usuários relatado incorretamente pode ocorrer às vezes quando o seu arquivo /var/run/utmp, que wfaz uso, está corrompido.

A solução que encontrei sugerida na Internet é truncar este arquivo (talvez no modo de usuário único) e tentar fazer login novamente:

# >/var/run/utmp
# reboot

Prossiga com cuidado, porém, é sugerido que os usuários logados enquanto você usa o Nuke /var/run/utmpexperimentarão "estranheza", e é por isso que as pessoas recomendam que você faça isso no modo de usuário único.

Fontes

informação relacionada