Why does the "w" command report a wrong number of logged in users?

I have logged in from tty6, then logged out. Now, executing the w command from a terminal inside unity gives the following output:

[email protected]:~$ w
19:27:19 up  2:40,  3 users,  load average: 0.41, 0.61, 0.46
USER     TTY      FROM              [email protected]   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

Isn’t the command supposed to list only the logged in users? I am using Ubuntu 12.10.

Edit

Note that the w command reports that 3 users are logged in (in the header) but only shows 2 entries.

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

There’s nothing surprising about this w output. If you look at the second column under the TTY heading, it says the two logins are from tty7 (not tty6!) and pts/2. Now tty7 is your graphical log in (see the WHAT column) and pts/2 is a pseudo-terminal device which is the terminal emulator you opened to run the w command (again, see the WHAT column).

Update

It seems that the wrongly reported number of users can occur sometimes when your /var/run/utmp, which w makes use of, is corrupt.

The solution I found suggested on the Internet is to truncate this file (perhaps in single-user mode) and retry logging in:

# >/var/run/utmp
# reboot

Proceed with caution, though, it is suggested that users logged in while you nuke /var/run/utmp will experience “weirdness”, which is why people recommend you do this in single-user mode.

Sources

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply