Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
# perp: persistent process supervision
# (includes runtools and libasagna)
# wcm, 2009.12.28 - 2013.01.11
# ===

This is perp, aka "the perpetrator", a persistent process supervisor
and service managment framework for un!x.

The perp package provides a set of daemons and utilities to reliably
start, monitor, log, and control a collection of persistent processes.


A "persistent process" is defined as any long-running program,
normally starting at system boot and intended to continue running
until system shutdown.  Also known and often described as a "service",
a persistent process generally provides some essential, on-demand,
system service.  Programs that serve email, domain name queries,
and http requests are all examples of services that are normally
run as persistent processes.


perp provides a portable, uniform framework for installing such
services on any un!x platform, initializes services reliably within
a consistent process environment, and makes sure they continue to
run and log untended for as long as necessary.

-Is that all?

The big news with release 2.0 is that the perpd(8) daemon now runs as
a single process, coalescing all the operations formerly provided by
multiple perpetrate(8) supervisors into a single executable.  By
eliminating all the supervisory "middle-man" processes, the context
switching overhead of the perp system is substantially simplified over
earlier releases.  And perpd(8) now sets up a mere 2 file objects on
startup -- a lock file and a domain socket -- and otherwise generates
no disk activity whatsoever during runtime.

-Says you!


Package Layout:

  ./CHANGES     changlog and release history
  ./INSTALL     how to install/upgrade
  ./LICENSE     copyright/license info
  ./README      this here file right here
  ./     build/install configuration file
  ./examples/*  sample service definitions
  ./lasagna/*   libasagna utility library sources
  ./perp/*      perp build sources
  ./runtools/*  runtools build sources


This package is intended to build, install and run on any contemporary
un!x platform without additional requirements.  It has been tested on
the following platforms:

  NetBSD 5.0, i386
  Linux 2.6+, i686, gcc + gnu libc
  Linux 2.6+, i686, gcc + dietlibc
  Linux 2.6+, x86_64, gcc + dietlibc
  Darwin 10.3.2 (Mac OSX), i386


See INSTALL for complete instructions on building and installing the
software, and upgrading from an earlier release.  


This package includes a set of troff -man pages.  To view them prior
to installation, see the /man subdirectory within each of the ./perp
and ./runtools subdirectories.  It is suggested to skim the following
pages for an overview of the system:  perp_intro.8, perpd.8, perpetrate.5,
and perp-setup.8.

Process 1 (/sbin/init) Support:

This release of perp does not include replacement for /sbin/init.
If this is important for you -- and especially if you are interested
in developing a complete perp-based un!x distribution -- please
let me know.


This project includes the suggestions and corrections provided by perp
users from around the world.  Thanks for your feedback!

More information:

### EOF


(Playground) Debian packaging for perp







No releases published


No packages published