Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Talk given at YAPC 2014 on process supervision
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
Simplifying Perl Daemons using Supervisors This talk discusses the de-facto standard for "daemonizing" a process in Unix, and why the de-facto standard is WRONG. It shows how much work is involved in doing this, and then shows how you can avoid all that work by using a supervisor. It then lists some good supervisor tools, and suggestes reading about them on their individual sites. Handy Links: Process Supervision Tools Daemontools The pioneer of the design: http://cr.yp.to/daemontools.html Runit A popular re-implementation of the same idea: http://smarden.org/runit Also available as a busybox applet: http://busybox.org Perp A variation that uses a single process to supervise many jobs: http://b0llix.net/perp/ s6 Extreme minimalist supervisor with high level of attention to detail. http://skarnet.org/software/s6/ Also see discussion and comparison of tools at http://skarnet.org/software/s6/why.html Daemonproxy Scriptable supervision tool that lets you easily build your own supervisor. http://www.nrdvana.net/daemonproxy/ Useful Loggers Tinylog Basic log-to-file with rotation built-in. http://b0llix.net/perp/site.cgi?page=tinylog.8 Sissylog Log to syslog, using prefixes to determine log level http://b0llix.net/perp/site.cgi?page=sissylog.8 s6-log Filter log messages into files by pattern, with many useful features. http://skarnet.org/software/s6/s6-log.html Also, for anyone using Log::Any (which should be everyone) https://metacpan.org/pod/Log::Any::Adapter::Daemontools