Upstart is a discontinued
event-based replacement for the traditional
init
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
daemon—the method by which several
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
computer
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s perform tasks when the computer is started. It was written by
Scott James Remnant, a former employee of
Canonical Ltd. In 2014, Upstart was placed in maintenance mode, and other init daemons, such as
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
, were recommended in place of Upstart.
Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
moved away from Upstart with the release of version
15.04 (''Vivid Vervet'') in favor of migrating to systemd. As of June 2024, there have been no updates released for Upstart since September 2014.
Rationale
The traditional init process was originally only responsible for bringing the computer into a normal running state after power-on, or gracefully shutting down services prior to shutdown. As a result, the design is strictly
synchronous,
blocking future tasks until the current one has completed. Its tasks must also be defined in advance, as they are limited to this prep or cleanup function. This leaves it unable to handle various non-startup-tasks on a modern
desktop computer
A desktop computer, often abbreviated as desktop, is a personal computer designed for regular use at a stationary location on or near a desk (as opposed to a portable computer) due to its size and power requirements. The most common configuratio ...
elegantly, including:
* The addition or removal of
USB flash drive
A flash drive (also thumb drive, memory stick, and pen drive/pendrive) is a data storage device that includes flash memory with an integrated USB interface. A typical USB drive is removable, rewritable, and smaller than an optical disc, and u ...
s and other portable storage or network devices while the machine is running
* The discovery and scanning of new storage devices, especially when a disk may not even power on until it is scanned
* The loading of
firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
for a device, which may need to occur after it is detected but before it is usable
Upstart's event-driven model allows it to respond to events asynchronously as they are generated.
Design
Upstart operates asynchronously; it handles starting of the tasks and services during boot and stopping them during shutdown, and also supervises the tasks and services while the system is running.
Easy transition and perfect
backward compatibility
In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with Input ...
with
sysvinit
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direct ...
were the explicit design goals; accordingly, Upstart can run unmodified sysvinit scripts. In this way it differs from most other init replacements (beside
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
and
OpenRC
OpenRC is a dependency-based init system for Unix-like computer operating systems. It was created by Roy Marples, a NetBSD developer who was also active in the Gentoo Linux, Gentoo project. It became more broadly adopted as an init system outsid ...
), which usually assume and require complete transition to run properly, and do not support a mixed environment of traditional and new startup methods.
Upstart allows for extensions to its event model through the use of initctl to input custom, single events, or event bridges to integrate many or more-complicated events. By default, Upstart includes bridges for socket, dbus, udev, file, and dconf events; additionally, more bridges are possible.
Adoption
Linux distribution
A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s and other operating systems based on the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
which use Upstart as the default init system:
* Upstart is used in
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
's
ChromeOS
ChromeOS, sometimes styled as chromeOS and formerly styled as Chrome OS, is an operating system designed and developed by Google. It is derived from the open-source operating system and uses the Google Chrome web browser as its principal user ...
and
ChromiumOS.
Linux distributions that support or have supported Upstart to some extent, but moved away since or no longer use it as their default init system:
*
Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
decided that systemd will be the default init system beginning with the ''
Jessie'' release, after considering switching to Upstart. It was eventually removed from the Debian archives in December 2015.
* Upstart was first included in
Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
in the
Ubuntu 6.10 "Edgy Eft" release in late 2006, replacing
sysvinit
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direct ...
.
Ubuntu 9.10 "Karmic Koala" introduced native Upstart bootup as of Alpha 6. In turn, after the Debian project decided to adopt
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
on a future release in 2014,
Mark Shuttleworth announced that Ubuntu would begin plans to migrate to systemd itself to maintain consistency with upstream. Ubuntu finished the switch to systemd as its default init system in version 15.04 (Vivid Vervet), with the exception of
Ubuntu Touch.
* In
Fedora 9, Upstart replaced sysvinit, however, systemd replaced Upstart in the Fedora 15 release.
* Red Hat includes Upstart in their
Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) is a commercial Linux distribution developed by Red Hat. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. Fedora Linux and ...
6 release. As a result, it is also used by RHEL 6 variants such as
CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a discontinued Linux distribution that provided a free and open-source community-supported computing platform, functionally compatible with its upstream (softw ...
,
Scientific Linux, and
Oracle Linux. For RHEL 7, systemd is used instead.
*
openSUSE
openSUSE () is a free and open-source software, free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: ''Tumbleweed'', an upstream rolling release distribution, and ''Leap'', a stable r ...
included Upstart in version 11.3 Milestone 4, but not as default. systemd replaced Upstart, as the default init system in openSUSE 12.1.
* Upstart is used in
HP's
webOS
webOS, also known as LG webOS, is a Linux kernel-based multitasking operating system for smart devices, such as smart TVs, that has also been used as a mobile operating system. Initially developed by Palm, Inc. (which was acquired by Hewlett ...
for the
Palm Pre
The Palm Pre , styled as palm prē, is a multitasking smartphone that was designed and marketed by Palm with a multi-touch screen and a sliding keyboard. The smartphone was the first to use Palm's Linux-based mobile operating system, webOS. T ...
,
Palm Pixi (both before Palm was bought out by HP),
HP Veer, and
HP Pre 3 smart phones, along with the
HP TouchPad
The HP TouchPad is a tablet computer that was developed and designed by Hewlett-Packard. The HP TouchPad was launched on July 1, 2011, in the United States; July 15 in Canada, United Kingdom, France, Germany; and August 15 in Australia.
On Aug ...
tablet.
* Upstart replaced the sysvinit in
Maemo
Maemo is a Linux-based software platform originally developed by Nokia, now developed by the Free software movement, community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and Software development ...
5 for
Nokia
Nokia Corporation is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporation, originally established as a pulp mill in 1 ...
Internet tablets.
The latest release was version 1.13 on July 11, 2014. Since December 2018 the project website says that Upstart is in maintenance mode only, and recommends other init systems, such as
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
.
See also
*
Systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
*
launchd
*
runit
runit is an init and service management scheme for Unix-like Operating systems that initializes, supervises, and ends processes throughout the operating system. Runit is a reimplementation of the daemontools process supervision toolkit that ...
*
Operating system service management
*
Service Management Facility
References
External links
*
Upstart on LaunchpadUpstart CookbookUpstart Cookbook* Init systems comparison
part 1an
part 2at LWN.net
Init systems comparison table
{{Ubuntu
Ubuntu
Unix process- and task-management-related software