Skip to content

yannk/ControlFreak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is ControlFreak?
=====================

  see also: - lib/ControlFreak/Tutorial.pod
            - lib/ControlFreak.pm (pod)

ControlFreak's intent is to help you really control your (web) app (in
production and in development) and your resources effectively.

It's a process supervisor:

- It fixes the mess of pid file management
- It facilitates the roll-forward and backward of releases
- It optionally controls the resources that your app needs
  (essentially sockets) and make these resources available to your app using
  a push model
- ... and many other benefits like flexible logging/monitoring of everything

It supervises any type of services. Examples:

In Dev:
- memcached
- gearmand
- perlbal
- plack
- workers
- ddlockd

In Prod:
- gearman workers
- schwartz workers
- plack (web) workers)
- (or, apache if you prefer)

How does it work?
=================

It is a pure Perl implementation consisting in:
- a controlling process: cfkd, which runs an AnyEvent loop usually running
  in the background
- a command line tool to talk to it: cfkctl
- a configuration file (just a bunch of commands really)

cfkd forks to start (exec) the services it controls.

Optimally, cfkd binds sockets and share them with workers before forking
(known as pre-fork module), it can also make you benefit from Copy On Write
effect (sharing memory between all your workers for instance).

At your command cfkd, restarts, stops, kills any service.

About

a process supervisor in Perl

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages