cookbook 'daemontools', '~> 1.5.0'
daemontools (8) Versions 1.5.0 Follow18
cookbook 'daemontools', '~> 1.5.0'
knife cookbook site install daemontools
knife cookbook site download daemontools
Installs DJB's Daemontools and includes a service LWRP.
Tested via Test Kitchen.
- Debian 7.6
- Ubuntu 14.04, 12.04, 10.04
This cookbook is known in the past to work on ArchLinux and Gentoo, but as they are rolling release distributions, it is difficult to ensure compatibility over time.
May work on other platforms with or without modification using the "source" installation method. See Attributes and Recipes below.
- pacman - for
aurrecipe, on ArchLinux systems
- build-essential - for
node['daemontools']['bin_dir']- Sets the location of the binaries for daemontools, default is selected by platform, or '/usr/local/bin' as a fallback.
node['daemontools']['service_dir']- Daemontools "service" directory where svscan will find services to manage.
node['daemontools']['install_method']- how to install daemontools, can be
node['daemontools']['start_svscan']- whether to start
node['daemontools']['package_name']- name of the "daemontools" package, default value varies by platform.
The default recipe includes the appropriate installation method's recipe using the
start_svscan attribute is true, then include the
svscan recipe too.
daemontools package, using the
node['daemontools']['package_name'] attribute. On Debian family systems, this is
daemontools-run, which depends on
daemontools (and provides run time / init system configuration).
On other untested platforms (e.g., RHEL family), if a local
daemontools package is built and it sets up the appropriate init system configuration (systemd, upstart, inittab), then this recipe will be sufficient. Otherwise, write a custom recipe.
Used on ArchLinux systems to install daemontools from the Arch User Repository (AUR). Exits gracefully without exception if used on other platforms.
The source installation of daemontools should work on most other platforms that do not have a package available. A custom recipe may be required to configure the
svscan service init script or upstart or systemd configuration.
Enables and starts the
svscan service. This requires that the local system have properly set up the
svscan service for the appropriate init system. It's outside the scope of this cookbook to detect this for every possible platform, so a custom recipe may be required. For example, Debian family
daemontools-run package provides this.
This cookbook includes an LWRP,
daemontools_service, for managing services with daemontools. Examples:
daemontools_service "tinydns-internal" do directory "/etc/djbdns/tinydns-internal" template false action [:enable,:start] end daemontools_service "chef-client" do directory "/etc/sv/chef-client" template "chef-client" action [:enable,:start] log true end
Daemontools itself can perform a number of actions on services. The following are commands sent via the
svc program. See its man page for more information.
- start, stop, status, restart, up, down, once, pause, cont, hup, alrm, int, term, kill
Enabling a service (
:enable action) is done by setting up the directory located by the
directory resource attribute. The following are set up:
runscript that runs the service startup using the
templateresource attribute name.
log/rundirectory and script that runs the logger if the resource attribute
finishscript, if specified using the
envdirectory, containing ENV variablesif specified with the
- links the
The default action is
:start - once enabled daemontools services are started by svscan anyway.
The name attribute for the resource is
Include the daemontools recipe on nodes that should have daemontools installed for managing services. Use the
daemontools_service LWRP for any services that should be managed by daemontools. In your cookbooks where
daemontools_service is used, create the appropriate run and log-run scripts for your service. For example if the service is "flowers":
daemontools_service "flowers" do directory "/etc/sv/flowers" template "flowers" action [:enable, :start] log true end
Create these templates in your cookbook:
If your service also has a finish script, set the resource attribute
finish to true and create
The content of the scripts should be appropriate for the "flowers" service.
License and Author
- Author: Joshua Timberman (email@example.com)
- Copyright 2010-2012, Opscode, Inc.
- Copyright 2014, Chef Software, Inc. firstname.lastname@example.org
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
daemontools Cookbook CHANGELOG
This file is used to list changes made in each version of the daemontools cookbook.
- Recursively create directory in
svscanrecipe for managing the
svscanservice so supervised services by
daemontools_servicework (#12, #21)
- Update test kitchen support, add tests (#18)
- Improve recipe readability, adding
package_nameattribute, and refactor
pacmanas a dependency so ArchLinux "just works"
- Adding variables parameter to templates in service LWRP
- COOK-2655 : Replace "execute" method with "
- [COOK-4181] - Parameterize source tarball location
- COOK-3234 - Fix issue where templates could not be updated after service is enabled
- COOK-3207 - Add Gentoo platform support via package installation
- [COOK-2688]: missing space between link and name
- [COOK-1388] - Conditional fix-ups
- [COOK-1428] - Resolve foodcritic warnings
1.5.0 passed Foodcritic.