chef
https://github.com/opscode/chef
Ruby
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Chef::Provider::Service::Upstart#initialize
Upstart does more than start or stop a service, creating multiple 'states' [1] that a service can be in. In chef, when we ask a service to start, we expect it to have started before performing the next step since we have top down dependencies. Which is to say we may follow witha resource next that requires that service to be running. According to [2] we can trust that sending a 'goal' such as start will not return until that 'goal' is reached, or some error has occurred. [1] http://upstart.ubuntu.com/wiki/JobStates [2] http://www.netsplit.com/2008/04/27/upstart-05-events/
Edit
git clone [email protected]:opscode/chef.git
cd chef
open lib/chef/provider/service/upstart.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-Chef--Provider--Service--Upstart-initialize-for-pr
# Commit to gitgit add lib/chef/provider/service/upstart.rbgit commit -m "better docs for Chef::Provider::Service::Upstart#initialize"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-Chef--Provider--Service--Upstart-initialize-for-pr
hub pull-request
# Celebrate!