upstart pallet crate
Clojure Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Repository · Issues · API docs · Annotated source · Release Notes

A pallet crate to install and configure upstart.

Dependency Information

:dependencies [[com.palletops/upstart-crate "0.8.0-alpha.2"]]


PalletCrate VersionRepoGroupId
0.8.0-beta.6 0.8.0-alpha.2 clojars com.palletops Release Notes Source
0.7.2 0.7.0-alpha.2 clojars com.palletops Release Notes Source


The upstart configuration does not replace the system init as PID 1.

The server-spec function provides a convenient pallet server spec for upstart. It takes a single map as an argument, specifying configuration choices, as described below for the settings function. You can use this in your own group or server specs in the :extends clause.

(require '[pallet/crate/upstart :as upstart])
(group-spec my-upstart-group
  :extends [(upstart/server-spec {})])

While server-spec provides an all-in-one function, you can use the individual plan functions as you see fit.

The settings function provides a plan function that should be called in the :settings phase. The function puts the configuration options into the pallet session, where they can be found by the other crate functions, or by other crates wanting to interact with upstart.

The install function is responsible for actually installing upstart.

The configure function writes the upstart configuration file, using the form passed to the :config key in the settings function.

To create an upstart job, you can write a method for supervisor-config-map.

(defmethod supervisor-config-map [:riemann :runit]
  [_ {:keys [run-command service-name user] :as settings} options]
  {:service-name service-name
   :run-file {:content (str "#!/bin/sh\nexec chpst -u " user " " run-command)}})


On the group, or #pallet on freenode irc.


Licensed under EPL

Copyright 2013 Hugo Duncan.