lein-daemon-runtime:lein-daemon-runtime

Runtime code for lein-daemon


License
EPL-2.0

Documentation

** DEPRECATED **

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.

Install

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.

NS

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.

Operation

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 1.6.1.1. 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.