grunt-forever

Grunt task for starting and stopping an application as a daemon using forever

npm install grunt-forever
96 downloads in the last day
950 downloads in the last week
5 319 downloads in the last month

grunt-forever

forever task for grunt to start, stop and restart an application as a daemon.

Build Status

Updated for Grunt 0.4.0

This grunt task plugin has been updated to work with Grunt 0.4.0 release. The working version for Grunt 0.3.x has been tagged 0.2.2.

Getting Started

Install this grunt plugin next to your project's grunt.js gruntfile with:

$ npm install grunt-forever

Then add this line to your project's grunt.js gruntfile:

grunt.loadNpmTasks('grunt-forever');

Tests

There are several specs verifying the start, stop and restart commands for the task. To run the feature specs:

$ npm run test

Overview

Inside your grunt.js file add a section named forever. This section specifies the forever task and provides the main application filepath option that will be run. The main filepath defaults to index.js if not provided.

Named Arguments

grunt-forever uses colon-separated arguments for the forever task described in the grunt API. Supported name arguments are:

  • forever::start
  • forever::stop
  • forever::restart
start

Attempts to start the main application file as a daemon if not currently running.

stop

Attempts to stop the process started previously by forever.

restart

Attempts to restart the process previously started. If not currently running, starts a new one.

Options

index string

The option specifies the main application file that will be run under a daemon using forever.

command string

The command to execute, defaults to 'node'. Set this to 'coffee' to run coffeescript applications.

logDir string

The directory log files are saved, defaults to 'forever'.

errFile string

File stderr is logged into, defaults to 'err.log'.

logFile string

File stdout is logged into, defaults to 'out.log'.

Config Example

forever: {
  server1: {
    options: {
      index: 'index.js',
      logDir: 'logs'
    }
  },

  server2: {
    options: {
      index: 'otherindex.js',
      logDir: 'logs'
    }
  }
}

Command example

grunt forever:server1:start
grunt forever:server2:stop
grunt forever:server1:restart

Changelog

0.4.3 / 2014-03-13

  • introduction of proper testing of plugin under cucumber.
  • merge of conflicts to use forever.restart() over async restart on stop().
  • pulling in updated dependencies. some cleanup.
  • Fixed forever:server:restart task.
npm loves you