A leiningen plugin for daemonizing a clojure process
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



I recommend using https://github.com/circleci/lein-jarbin instead.

Lein-daemon is a lein plugin that starts a clojure process as a daemon.

To use, add a :daemon option to your project.clj, it looks like

    :daemon {:name-of-service {:ns my.name.space
                               :pidfile "path-to-pidfile.pid"}}

The keys of the daemon map are the names of services that can be started at the command-line. Start a process with "lein daemon start :name-of-service". pidfile specifies where the pid file will be written. This path can be relative to the project directory, or absolute.

If the pidfile is not specified, it defaults to name-of-service.pid, in the project's directory.


add lein-daemon to your leiningen project file, as a plugin::

    :plugins [[lein-daemon "0.5.4"]]

lein-daemon 0.5.0 and higher requires lein-2.0.0-RC1 or later. For lein1 support, use lein-daemon 0.4.x

lein-daemon requires JNA to load the C standard library, so if you're using an uncommon JVM, you might need to install JNA on your box. If you're running Hotspot, you're probably fine.


Like lein run, lein daemon will call a function named -main, in the namespace specified by :ns. Any additional command line arguments to lein daemon start foo will be passed to -main.


Lein daemon currently has three commands, start, stop, check. Start with lein daemon start name-of-service. This will call the -main function in the specified ns, with no arguments. Extra arguments may also be specified, like lein daemon start service foo bar baz.

Stop the process with lein daemon stop name-of-service. Daemon will use the pid file to identify which process to stop.

Check if the process is still running with lein daemon check name-of-service.

Limitations / Assumptions

lein-daemon 0.5.0 and above require lein-2.0.0-RC1 or later. lein-daemon 0.4.x works on lein versions up to There is no version that supports lein 1.7.x

lein-daemon assumes you're on a unix-like system with nohup and bash installed.