runlevel
reads the system
UTMP
file, which defaults to
/var/run/utmp
when no alternate filename is given, to locate the most recent runlevel
record.
The previous and current runlevel from that record are output separated
by a single space. If there is no previous runlevel in the record, the letter
N
will be substituted.
If no runlevel record can be found,
runlevel
outputs the word
unknown
and exits with an error.
During system boot, the environment variables
RUNLEVEL
and
PREVLEVEL
will be set by the
init(8)
daemon, these come from the
runlevel(7)
event generated by
telinit(8)
or
shutdown(8).
When these environment variables are set,
runlevel
will output the values from these instead. Thus
runlevel
can be used in
rc
scripts as a replacement for the System-V
who(1)-r
command.
OPTIONS
--quiet
Does not output the current and previous runlevel, nor does it output
unknown
in the case of error (but it will exit with an error code).
This may be used to test for the presence of a runlevel entry, or to check
for errors reading from the file.
EXIT STATUS
runlevel
will exit with status
0
if a
UTMP
record was found, otherwise it will exit with status
1.
ENVIRONMENT
RUNLEVEL
runlevel
will read the current runlevel from this environment variable if set in
preference to reading from
/var/run/utmp
PREVLEVEL
runlevel
will read the previous runlevel from this environment variable if
RUNLEVEL was given, in preference to reading from
/var/run/utmp
FILES
/var/run/utmp
Where the current and previous runlevels will be read from.
NOTES
The Upstart
init(8)
daemon does not keep track of runlevels itself, instead they are implemented
entirely by its userspace tools.
A change of runlevel is signalled by the
runlevel(7)
event, generated by either the
telinit(8)
or
shutdown(8)
tools. This event includes the new runlevel in the
RUNLEVEL
environment variable, as well as the previous runlevel (obtained from
their own environment or from
/var/run/utmp)
in the
PREVLEVEL
variable.
As well as generating the event, both tools write the new
runlevel back to
/var/run/utmp
and append a new entry to
/var/log/wtmp.