A node.JS addon that helps to create *nix daemons in Javascript
C++ JavaScript
Pull request Compare This branch is 1 commit ahead, 48 commits behind indexzero:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
src
.gitignore
LICENSE
README.md
package.json
wscript

README.md

daemon.node

A C++ add-on for Node.js to enable simple daemons in Javascript plus some useful wrappers in Javascript.

Installation

Installing npm (node package manager)

  curl http://npmjs.org/install.sh | sh

Installing daemon.node with npm

  [sudo] npm install daemon

Installing daemon.node locally

  node-waf configure build  

Usage

There is a great getting started article on daemons and node.js by Slashed that you can read here. The API has changed slightly from that version thanks to contributions from ptge and fugue; there is no longer a daemon.closeIO() method, this is done automatically for you.

Starting a daemon:

Starting a daemon is easy, just call daemon.start() and daemon.lock().

  var daemon = require('daemon');

  // Your awesome code here

  fs.open('somefile.log', 'w+', function (err, fd) {
    daemon.start(fd);
    daemon.lock('/tmp/yourprogram.pid');
  });

This library also exposes a higher level facility through javascript for starting daemons:

  var sys = require('sys'),
      daemon = require('daemon');

  // Your awesome code here

  daemon.daemonize('somefile.log', '/tmp/yourprogram.pid', function (err, pid) {
    // We are now in the daemon process
    if (err) return sys.puts('Error starting daemon: ' + err);

    sys.puts('Daemon started successfully with pid: ' + pid);
  });

The Fine Print

This library is available under the MIT LICENSE. See the LICENSE file for more details. It was created by Slashed and forked / improved / hacked upon by a lot of good people. Special thanks to Isaacs for npm and a great example in glob.

Author: Slashed

Contributors: Charlie Robbins, Pedro Teixeira, James Halliday, Zak Taylor, Daniel Bartlett