LinuxCommandLibrary

initctl

Control Upstart jobs and services

SYNOPSIS

initctl [options] command [job-or-args]

PARAMETERS

--system
    Control system-wide Upstart instance (default)

--user
    Control user session Upstart instance

--desktop
    Control desktop session Upstart instance

--local
    Run locally; no daemon or serialization

-q, --quiet
    Reduce output verbosity

-v, --verbose
    Increase output verbosity

--debug
    Enable debug logging

--help, -h
    Display usage help

--version
    Show version information

--no-block
    Don't wait for job completion

--retry
    Retry command if temporarily failed

--monitor
    Monitor and print events (blocks)

--print-io
    Log all protocol I/O

--show-entries
    Include event entries in output

DESCRIPTION

initctl is the primary command-line interface for managing jobs and events in the Upstart init system. Upstart, developed by Canonical for Ubuntu, replaced the traditional SysV init with an event-driven model, allowing services to start based on system events rather than runlevels. Introduced in Ubuntu 6.06, it powered init until systemd adoption around 2015.

Using initctl, users can start, stop, restart, reload, or query the status of jobs defined in /etc/init/*.conf files. Jobs declare start/stop events, tasks, and instances. The tool communicates with the upstart daemon via a Unix domain socket at /com/ubuntu/upstart (system) or /run/user/$UID/upstart (user).

Key features include event emission with emit, job listing with list, and monitoring with --monitor. It supports system, user, and desktop sessions. Output includes job states like start/waiting, running, or stop/waiting. Goals ensure orderly service management during boot, shutdown, or runtime changes.

Though powerful for concurrency, Upstart faced criticism for incomplete POSIX adoption. Today, it's legacy; modern distros use systemd.

CAVEATS

Deprecated on systemd-based systems; emulated via systemctl compatibility layer. Fails if Upstart not running. User sessions require login session active.

COMMON COMMANDS

start job [INSTANCE] - Start job
stop job [INSTANCE] - Stop job
status job - Show status
emit event [KEY=VAL] - Emit event
list - List jobs

JOB FILES

Jobs in /etc/init/*.conf; syntax uses start on, stop on, exec directives.

HISTORY

Developed by Scott James Remnant (Keybuk) for Ubuntu in 2006 (v0.2.8). Evolved through Ubuntu 14.10; systemd replaced it in Ubuntu 15.04+. Maintained briefly post-2015 but obsolete in modern kernels/distros.

SEE ALSO

upstart(8), init(8), service(8), systemctl(1), telinit(8)

Copied to clipboard