Initialization Systems

Revision as of 03:47, November 23, 2014 by Drobbins (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Funtoo's portage contains ebuilds for the following initialization systems:

In Portage

The following packages have ebuilds available in Portage.

OpenRC

(Uses sys-apps/sysvinit)

OpenRC is Funtoo's default and preferred init system. Funtoo OpenRC is an independently-maintained, forked version of the OpenRC init scripts (now maintained by Gentoo). Funtoo Linux-specific changes generally relate to Funtoo network configuration.

It supports named runlevels, custom runlevels, and stacked runlevels. There is no process supervision. Dependencies and actions are determined in /etc/init.d/ and /etc/config.d/ by shell scripts and environment variables. There is optional parallel service startup.

See OpenRC for more info.

sysvinit

sys-apps/sysvinit (package not on wiki - please add) is the main init process. In Funtoo it is used as PID 1, along with OpenRC. It utilizes a runlevel system.

See the Wikipedia Page for more info.

s6

sys-apps/s6 (package not on wiki - please add). s6 is a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit.

See the Project Home Page for more info.

runit

sys-process/runit (package not on wiki - please add) is a cross-platform Unix init scheme with service supervision, a replacement for sysvinit, and other init schemes. It runs on GNU/Linux, *BSD, MacOSX, Solaris, and can easily be adapted to other Unix operating systems. It uses 3 runlevels.

See the Project Home page for more info.

systemd

sys-apps/systemd (package not on wiki - please add) is a suite of system management daemons, libraries, and utilities designed for Linux and programmed exclusively for the Linux API. Systemd authors characterize the software suite as a "basic building block" for an operating system.

See the Project Home Page for more info.

daemontools

sys-process/daemontools (package not on wiki - please add) is a collection of tools for managing UNIX services.

supervise monitors a service. It starts the service and restarts the service if it dies. Setting up a new service is easy: all supervise needs is a directory with a run script that runs the service.

multilog saves error messages to one or more logs. It optionally timestamps each line and, for each log, includes or excludes lines matching specified patterns. It automatically rotates logs to limit the amount of disk space used. If the disk fills up, it pauses and tries again, without losing any data.

See the Project Home page for more info.

daemontools-encore

sys-process/daemontools-encore (package not on wiki - please add) is a collection of tools for managing UNIX services. It is derived from the public-domain release of daemontools by D. J. Bernstein.

daemontools-encore adds numerous enhancements above what daemontools could do while maintaining backwards compatibility with daemontools. See the CHANGES file for more details on what features have been added.

See the Project Home page for more info.

Not in Portage

The following systems do not have ebuilds in portage.

upstart

Upstart is an event-based replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.

It was originally developed for the Ubuntu distribution, but is intended to be suitable for deployment in all Linux distributions as a replacement for the venerable System-V init.

See the [Project Home Page] for more info.

epoch

The Epoch Init System is a small but powerful init system for Linux 2.6+. It requires a libc, (not glibc specific), a Linux kernel of 2.6 or greater, a shell is recommended, and while it will function somewhat without it, /proc. It has very low memory usage, very small binary size, and is designed to be suitable for both full blown desktop and server systems as well as keeping minimalist and embedded distros heavily in mind. It is architecture and compiler independent, written in mostly ANSI C, and is designed with a philosophy in mind.

launchd

launchd is unified, open-source service-management framework that starts, stops and manages daemons, applications, processes, and scripts in Apple OS X environments. Dave Zarzycki at Apple designed and wrote launchd; Apple introduced it with Mac OS X Tiger and licenses it under the Apache License.

The sources are available here.

finit

Finit is a small SysV init replacement with process supervision similar to that of daemontools and runit. Its focus is on small and embedded GNU/Linux systems, although fully functional on standard server and desktop installations.

Finit is fast because it starts services in parallel, it then supervises and automatically restarts them if they fail. This can be extended upon with custom callbacks for all services, hooks into the boot process, or plugins to extend the functionality and adapt Finit to your needs.

SMF

Service Management Facility (SMF) is a feature of the Solaris operating system that creates a supported, unified model for services and service management on each Solaris system and replaces init.d scripts. SMF treats Services as "first class objects". That is, they are more than just user-executed software to the OS. They can be defined to have special states that allow finer control and permit monitoring and probing for diagnosing software failures, rather than having the administrator or dedicated "restarter" modules kill and restart the service as before.

SystemStarter

SystemStarter is a system program in Mac OS X, started by Mac OS X's BSD-style init prior to Mac OS X v10.4 and by launchd in Mac OS X v10.4 and later releases, that starts system processes specified by a set of property lists. SystemStarter was originally written by Wilfredo Sanchez for Mac OS X. In Mac OS X v10.4, it was deprecated in favor of launchd, and kept in the system only to start system processes not yet converted to use launchd.

It's manpages are here.

Other Packages of Interest

monit

Monit is a small Open Source utility for managing and monitoring Unix systems. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.

References