w(C)
w, uptime --
display information about who is on the system and what they are doing
Syntax
w [ -hlqtwx ]
[ -n namelist ]
[ -u utmpfile | -U utmpxfile ]
[ users ... ]
uptime
Description
The w command prints a summary of the current activity on
the system, including what each user is doing.
The uptime command
and the heading line on the w command
are the same and show
the current time of day, how long the system has been up,
the number of users logged onto the system, and load averages.
Load averages are shown as three numbers,
reflecting an average over 1, 5, and 15 minute intervals.
By default, load averages reflect
the number of processes in the run queue.
On SCO OpenServer Release 5.0.5 and later releases,
you can set the system so that the load averages
also include running processes; see below.
The options for the w command are:
-h-
Do not print the heading or title lines.
-l-
Long format (default): for each user, w outputs the user's
login name, the terminal or pseudo terminal the user is currently using,
when the user logged onto the system, the number of minutes the user
has been idle (how much time has expired since the user last
typed anything), the CPU time used by all processes and their
children attached to the terminal, the CPU time used by the
currently active process, and the name and arguments of the currently
active process.
-n namelist-
The argument is taken as the name of an alternate namelist
(/unix is the default).
This option is preserved for backward compatibility
with pre-SCO OpenServer operating systems.
For SCO OpenServer, this option applies
only when no /dev/table/* files are found on the system,
which should never happen.
-q-
Quick format: for each user, w outputs the user's login name,
the terminal or pseudo terminal the user is currently using,
the number of minutes the user has been idle,
and the name of the currently active process.
-t-
Only the heading line is output
(equivalent to uptime).
-u utmpfile-
The file utmpfile is used instead of /etc/utmp
as a record of who is currently logged in.
This option cannot be used with the -x option.
-U utmpxfile-
The file utmpxfile is used instead of /etc/utmpx.
This option can only be used
if the -x option is also specified.
-w-
Both the heading line and the summary of users is output.
-x-
Print out the hostname.
This option cannot be used with the -u option.
-X-
Print out full hostnames.
This option implies the -x option.
Hostnames printed by the -x option
are truncated to fit into a field;
hostnames printed by the -X option
are not truncated.
If any users are specified,
the user summary is restricted to reporting on these.
The load average shows the number of processes on the run queue;
by default, it does not include running processes.
In SCO OpenServer Release 5.0.5 and later releases,
you can set the count_onproc kernel variable
to also include running processes in this calculation.
When the load average includes only processes waiting to run
(count_onproc set to 0, the default),
it is a measure of unsatisfied demand for the CPU.
To clarify, consider a one CPU system
executing one process that is running continuously
(such as calculating the value of pi to a billion digits).
If count_onproc is set to 0,
the load average is 0
because no processes are waiting for the CPU.
If you had two such processes, the load average would be 1,
indicating that one process was running
and one was waiting for the CPU.
If the system is idle most of the time
with one process that runs occasionally,
the load average stays at 0.
You can patch the link kit, the linked kernel,
or kernel memory after boot
to set count_onproc to 1,
so running processes are included in the load average calculation
along with processes on the run queue.
One way to set this value to 1 on SCO OpenServer Release 5.0.6 and later
is to use the
scodb(ADM)
command:
echo 'count_onproc=1' | /etc/scodb -w
If count_onproc is set to 1,
the load average reflects both satisfied
and unsatisfied CPU demand.
This means that the single pi calculation process
yields a load average of 1.0;
two such processes yield a load average of 2.0.
A quiet system with sporadic CPU use
shows up as some small number such as 0.04.
When count_onproc is set to 0,
a load average of 0 on a 4-CPU machine
can mean anything from zero CPU activity
to one process on each CPU,
each spinning continuously.
With count_onproc set to 1,
a totally idle system registers a load average of 0
and a 4-CPU system
with one process spinning on each CPU
registers a load average of 4.
Differences between versions
The calculation of load averages changed in SCO OpenServer Release 5.0.5.
In SCO OpenServer Release 5.0.4 and earlier releases,
processes that were sleeping at a very high priority
were counted in the load average
even though they were completely inactive.
This is a vestige of the original BSD load average code.
Including inactive processes such as
some quiet NFS server processes,
sdd, and dlpid in the load averages
yielded false load averages.
The characteristic symptom of this problem
was a flat integer load average on a seemingly idle system,
as in the following:
1:10pm up 211 days, 14:22, 51 users, load average: 1.00, 1.00, 1.00
To get a list of such miscounted processes
that are excluded from the load average calculation
in SCO OpenServer Release 5.0.5 and later releases,
run the following command:
ps -elf | awk '$7 > 77 && $10 > 0'
This shows processes that would be falsely counted
into the load average on SCO OpenServer Release 5.0.4 and earlier systems
but are excluded from the count on SCO OpenServer Release 5.0.5 and later releases.
Note that this command does not catch
processes running at realtime priorities higher than 25
even though they are falsely counted in older releases.
The count_onproc variable that can be set
to 1 to include running processes in the load average calculation
as well as processes on the run queue
is available only in SCO OpenServer Release 5.0.5 and later releases.
Limitations
The ``currently active process'' is only an approximation
and is not always correct.
Pipelines can produce strange results,
as can some background processes.
If w
is completely unable to guess at the currently active process,
it prints ``-''.
This usually indicates that there are stale entries
in the utmp file
which records logins.
Stale utmp entries are sometimes left
when a user logs out and for some reason,
the entries were not erased from the file.
The reasons this happens are complex and varied,
but do not generally indicate anything seriously wrong.
Authorization
The behavior of these utilities is affected by assignment
of the mem authorization
On systems installed with ``high'' security,
this is usually reserved for system administrators.
If you do not have this authorization,
the output will be restricted to data about your activities.
Refer to
``Using a secure system'' in the Operating System User's Guide
for more details.
Files
Used if none of the -u, -U,
-x, or -X are given:
/etc/utmp-
login database
Used if the -x or -X flags are given
and the -u and -U flags are not given:
/etc/utmpx-
extended version of /etc/utmp
Used by default:
/dev/table/proc-
device special file access
to kernel process table
/dev/table/avenrun-
device special file access
to kernel load average
Used only if /dev/table/proc
or /dev/table/avenrun are inaccessible:
/unix-
text file of usual booted kernel
/dev/kmem-
device special file access to kernel memory
See also
date(C),
finger(C),
ps(C),
tab(HW),
uptime(C),
utmp(F),
utmpx(F),
who(C),
whodo(C)
Standards conformance
w and uptime
are not part of any currently supported standard.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003