Upstart

Initialization system

Upstart is an OS initialization system that controls the launch of daemons during system boot, their stopping, and their management while the system is running. It is an event-based replacement for the init initialization system in UNIX and Linux systems. It was originally developed for the Ubuntu distribution, but later became used in other Linux distributions, such as Fedora (later replaced by systemd), as a replacement for UNIX System V init. Since 2014, Upstart has been in maintenance mode only, with no new features being developed. It is now recognized as obsolete and a switch to systemd is planned for many distributions.

UpStart is a hybrid initialization system, it uses both SysV startup scripts and Systemd service files.

Most of its features work due to integration with Systemd initialization system. Recently, fewer and fewer SysV init scripts are being used and more and more Systemd unit files are being used. Sooner or later, Systemd will displace and completely replace Upstart in Ubuntu.

Tasks can be started and stopped with the start and stop programs located in the /sbin directory. Each of these programs must be parameterized with a list of tasks to be processed. Both programs provide the results of their work to the standard output stream.

The program status, as the name suggests, lets you know the status of the task. It displays first the name of the task, then the last operation performed on the task (start/stop), the current state and the process identifier, if any. You can get a list of all tasks and their statuses at the moment using initctl list command. With the initctl emit command you have the possibility to generate any event. This is very useful when writing your own jobs.

System processes are stored in /etc/init/ directory, and user processes are stored in ~/.init/ directory. User workflows are started in their sessions. Such processes are not system-wide. All processes regardless of their type are always defined in a configuration file (.conf), where their name should represent the service or task to be performed.

A process in the post-start state is considered a running process. It remains running until the pre-stop state, in which it prepares to stop. After that the process is stopped and goes to the post-stop state (system cleanup).

Upstart is an event-based provisioning system developed by Canonical and designed to replace SysV. It can start system services, perform various tasks on them, inspect them at runtime, and take actions in response to system events.

Most of its features work through integration with the Systemd provisioning system.