Skip to content

Concepts

Mark Heily edited this page Apr 20, 2016 · 13 revisions

Concepts


NOTE Please read the terminology section of the Wiki first, to understand the meaning of the specific terms used below.


Synopsis

Relaunchd is a job scheduler.

Overview

Relaunchd schedules jobs to run on a single computer. Each job is defined in a dedicated manifest. Manifests describe the program to be executed, along with resource dependencies and environment settings. When the job is ready to be started, Relaunchd configures the execution environment, and resolves resource dependencies.

Relaunchd can run alongside an existing service manager, such as rc(8) or systemd. It also implements its own service manager, which could someday be used to replace the native service manager of your favorite operating system.

Unlike the original launchd project, Relaunchd is not a system manager; it does not replace PID #1 or manage the early part of the boot process.

Diagrams

Elements of a job:

job diagram here

System components (not including launchcfg or launchctl):

+-----------------------------+
|                             |
|        launchadm(8)         |
|      Service Manager        |
|                             |
|                             |
+--------------+--------------+
               |
               |
               |
               |
+--------------v--------------+
|                             |
|          launchd(8)         |
|        Job Scheduler        |
|                             |
|                             |
+-----------------------------+

Job lifecycle

+-------------+     +-------------+     +-------------+   +-------------+   +-------------+
|             |     |             |     |             |   |             |   |             |
|   Load      +----->  Acquire    +----->   Launch    +--->  Release    +--->   Unload    |
|             |     |  Resources  |     |             |   |  Resources  |   |             |
+-------------+     +------+------+     +------+------+   +-------------+   +-------------+
                           ^                   |
                           |                   | 
                           | restart the job   | monitor the job
                           |                   |
                           |            +------v------+
                           |            |             |
                           +------------+   Supervise |
                                        |             |
                                        +-------------+

The above diagrams were created with ASCIIFlow Infinity.

Clone this wiki locally