runlevel - output previous and current runlevel
reads the system UTMP
file, which defaults to
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
will be substituted.
If no runlevel record can be found, runlevel
outputs the word
and exits with an error.
During system boot, the environment variables RUNLEVEL
will be set by the init(8)
daemon, these come from the
event generated by telinit(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
- Does not output the current and previous runlevel, nor does
it output unknown in the case of error (but it will exit with an
This may be used to test for the presence of a runlevel entry, or to check
for errors reading from the file.
will exit with status 0
if a UTMP
found, otherwise it will exit with status 1
- runlevel will read the current runlevel from this
environment variable if set in preference to reading from
- runlevel will read the previous runlevel from this
environment variable if RUNLEVEL
was given, in preference to reading from /var/run/utmp
- Where the current and previous runlevels will be read
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)
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
) in the PREVLEVEL
As well as generating the event, both tools write the new runlevel back to
and append a new entry to /var/log/wtmp.
Written by Scott James Remnant <firstname.lastname@example.org
Report bugs at <https://launchpad.net/upstart/+bugs
Copyright © 2009 Canonical Ltd.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
runlevel(7) init(8) telinit(8) shutdown(8)