注意:

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "Initialization Systems"

From Funtoo
Jump to navigation Jump to search
m
(Fixed link by adding spacer)
 
(5 intermediate revisions by one other user not shown)
Line 24: Line 24:
{{Package|sys-apps/s6}}. 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.  
{{Package|sys-apps/s6}}. 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 [http://www.skarnet.org/software/s6/index.html| Project Home Page] for more info.
See the [http://www.skarnet.org/software/s6/index.html | Project Home Page] for more info.


==== runit ====
==== runit ====
Line 36: Line 36:
{{Package|sys-apps/systemd}} 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.
{{Package|sys-apps/systemd}} 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 [http://freedesktop.org/wiki/Software/systemd/| Project Home Page] for more info.
See the [http://freedesktop.org/wiki/Software/systemd/ | Project Home Page] for more info.


==== daemontools ====
==== daemontools ====
Line 46: Line 46:
<tt>multilog</tt> 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.  
<tt>multilog</tt> 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 [http://cr.yp.to/daemontools.html| Project Home page] for more info.  
See the [http://cr.yp.to/daemontools.html | Project Home page] for more info.  


==== daemontools-encore ====
==== daemontools-encore ====
Line 52: Line 52:
{{Package|sys-process/daemontools-encore}} is a collection of tools for managing UNIX services. It is derived from the public-domain release of daemontools by D. J. Bernstein.
{{Package|sys-process/daemontools-encore}} 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 [http://untroubled.org/daemontools-encore/CHANGES| CHANGES] file for more details on what features have been added.
daemontools-encore adds numerous enhancements above what daemontools could do while maintaining backwards compatibility with daemontools. See the [http://untroubled.org/daemontools-encore/CHANGES | CHANGES] file for more details on what features have been added.


See the [http://untroubled.org/daemontools-encore/| Project Home page] for more info.  
See the [http://untroubled.org/daemontools-encore/ | Project Home page] for more info.  


== Not in Portage ==
== Not in Portage ==
Line 65: Line 65:
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.  
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 [[http://upstart.ubuntu.com/| Project Home Page]] for more info.
See the [[http://upstart.ubuntu.com/ | Project Home Page]] for more info.


==== [http://universe2.us/epoch.html| epoch] ====
==== [http://universe2.us/epoch.html | 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.
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.
Line 75: Line 75:
<tt>launchd</tt> 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 <tt>launchd</tt>; Apple introduced it with Mac OS X Tiger and licenses it under the Apache License.
<tt>launchd</tt> 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 <tt>launchd</tt>; Apple introduced it with Mac OS X Tiger and licenses it under the Apache License.


The sources are available [https://opensource.apple.com/source/launchd/| here].
The sources are available [https://opensource.apple.com/source/launchd/ | here].
==== [http://troglobit.com/finit.html| finit] ====
==== [http://troglobit.com/finit.html | 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 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.
Line 90: Line 90:
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 <tt>launchd</tt>, and kept in the system only to start system processes not yet converted to use <tt>launchd</tt>.
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 <tt>launchd</tt>, and kept in the system only to start system processes not yet converted to use <tt>launchd</tt>.


It's manpages are [https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/SystemStarter.8.html| here].
It's manpages are [https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/SystemStarter.8.html | here].


== Other Packages of Interest ==
== Other Packages of Interest ==

Latest revision as of 23:41, January 27, 2023

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)

sys-apps/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 sys-apps/openrc for more info.

sysvinit

No results is the main init process. In Funtoo it is used as PID 1, along with sys-apps/openrc. It utilizes a runlevel system.

See the Wikipedia Page for more info.

s6

No results. 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 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

No results 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

No results 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

No results 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

app-admin/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