Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.2.3. Upstart

In Red Hat Enterprise Linux 6, init from the sysvinit package has been replaced with Upstart, an event-based init system. This system handles the starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running. For more information on Upstart itself, refer to the init(8) man page.
Processes are known to Upstart as jobs and are defined by files in the /etc/init directory. Upstart is very well documented using man pages. Command overview is in init(8) and job syntax is described in init(5).
Upstart provides the following behavioral changes in Red Hat Enterprise Linux 6:
  • The /etc/inittab file is deprecated, and is now used only for setting up the default runlevel using the initdefault line. Other configuration is done using upstart jobs in the /etc/init directory.
  • The number of active tty consoles is now set by the ACTIVE_CONSOLES variable in /etc/sysconfig/init, which is read by the /etc/init/start-ttys.conf job. The default value is ACTIVE_CONSOLES=/dev/tty[1-6], which starts a getty on tty1 through tty6.
  • A serial getty is still automatically configured if the serial console is the primary system console. In prior releases, this was done by kudzu, which would edit /etc/inittab. In Red Hat Enterprise Linux 6, configuration of the primary serial console is handled by /etc/init/serial.conf.
  • To configure a getty running on a non-default serial console, you must now write an Upstart job instead of editing /etc/inittab. For example, if a getty on ttyS1 is desired, the following job file (/etc/init/serial-ttyS1.conf) would work:
    # This service maintains a getty on /dev/ttyS1.
    start on stopped rc RUNLEVEL=[2345]
    stop on starting runlevel [016]
    exec /sbin/agetty /dev/ttyS1 115200 vt100-nav
As in prior releases, ttyS1 is required in /etc/securetty if you wish to allow root logins on this getty.
Because of the move to Upstart, using /etc/shutdown.allow for defining who can shut the machine down is no longer supported.