The Epoch Init System: A New Beginning.

Introduction

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: 1. Features that aren't our business aren't our business. 2. Service tracking and management is the business of the init system 3. Be unintrusive and easily replaced without a reinstall of the OS. 4. Don't require any dependency libraries outside of libc. 5. Be small and efficient, but not so small as to be a poor choice for desktops and servers. 6. Be easily configured and tidy with our configuration. 7. If it's easy as well as non-costly to implement, and people wish they could do that, let them do that. The last pillar has resulted in some interesting and useful options that I'm sure many can appreciate.

Release history

NOTE: Current work is focused on a substantially upgraded "2.0" release, but this will take time to become stable. In the mean time, Epoch 1.3.x is stable and tested. On June 23rd, 2015, The Epoch Init System version 1.3.0 "Fluoxetine" was released. On February 12th, 2015, The Epoch Init System version 1.2.2 "Peroxide" was released. On January 3rd, 2015, The Epoch Init System version 1.2.1 "Peroxide" was released. On December 22nd, 2014, The Epoch Init System version 1.2.0 "Peroxide" was released. On May 17th 2014, the Epoch Init System version 1.1.1 "Sirius" was released. On May 15th 2014, the Epoch Init System version 1.1 "Sirius" was released. On February 23rd 2014, the Epoch Init System version 1.0.1 "Sage" was released. On January 24th 2014, the Epoch Init System version 1.0 "Sage" was released.

Features

Here is a list of notable features Epoch provides:
  • Single or multiple configuration file setup, your choice.
  • Tracks processes with high accuracy, and supports PID files, PIDs, and commands as a method for stopping a service.
  • Uses numeric priority groups to determine startup order of services.
  • Simple, easy-to-follow, single threaded non-parallel design.
  • Can automatically restart dead services.
  • Supports user/group setting, working directory setting, environment variable setting, stderr/stdout redirection, and more.
  • Includes implementations of killall5 and wall, neither of which are mandatory.
  • All applets are symlinks to the central binary.
  • Power control functions restricted to users in the wheel/root group. (group zero).
  • Extensive service status and control commands for system administration.
  • Can kill stuck boot and shutdown jobs and continue booting or shutting down via CTRL-ALT-DEL.
  • Uses a simple custom IPC for applet communication with init.
  • And much more!

    Configuration and Support

    There is a basic configuration tutorial below, and our irc channel is #epoch on irc.freenode.net. Configuration File HOWTO Service Management Epoch Init System FAQ If you have other questions or need specific help, you can contact Subsentient here. I'll usually be quite happy to reply.

    Download the Epoch Init System

    To download the Epoch Init System, see below. Download 1.3.0 "Fluoxetine" Download tar.gz of git/master --- Epoch's github Epoch is public domain software. See unlicense.org.