diff --git a/README.md b/README.md index 8f6f0815..1552a6f1 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,14 @@ Note that this project currently fully depends on the community for implementing ## Installation ``` bash - $ [sudo] npm install forever -g +$ [sudo] npm install forever -g ``` **Note:** If you are using forever _programmatically_ you should install [forever-monitor][0]. ``` bash - $ cd /path/to/your/project - $ [sudo] npm install forever-monitor +$ cd /path/to/your/project +$ [sudo] npm install forever-monitor ``` ## Usage @@ -36,80 +36,80 @@ forever start app.js **Options** ``` - $ forever --help - usage: forever [action] [options] SCRIPT [script-options] - - Monitors the script specified in the current process or as a daemon - - actions: - start Start SCRIPT as a daemon - stop Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script - stopall Stop all running forever scripts - restart Restart the daemon SCRIPT - restartall Restart all running forever scripts - list List all running forever scripts - config Lists all forever user configuration - set Sets the specified forever config - clear Clears the specified forever config - logs Lists log files for all forever processes - logs Tails the logs for - columns add Adds the specified column to the output in `forever list`. Supported columns: 'uid', 'command', 'script', 'forever', 'pid', 'id', 'logfile', 'uptime' - columns rm Removed the specified column from the output in `forever list` - columns set Set all columns for the output in `forever list` - columns reset Resets all columns to defaults for the output in `forever list` - cleanlogs [CAREFUL] Deletes all historical forever log files - - options: - -m MAX Only run the specified script MAX times - -l LOGFILE Logs the forever output to LOGFILE - -o OUTFILE Logs stdout from child script to OUTFILE - -e ERRFILE Logs stderr from child script to ERRFILE - -p PATH Base path for all forever related filesĀ (pid files, etc.) - -c COMMAND COMMAND to execute (defaults to node) - -a, --append Append logs - -f, --fifo Stream logs to stdout - -n, --number Number of log lines to print - --pidFile The pid file - --uid DEPRECATED. Process uid, useful as a namespace for processes (must wrap in a string) - e.g. forever start --uid "production" app.js - forever stop production - --id DEPRECATED. Process id, similar to uid, useful as a namespace for processes (must wrap in a string) - e.g. forever start --id "test" app.js - forever stop test - --sourceDir The source directory for which SCRIPT is relative to - --workingDir The working directory in which SCRIPT will execute - --minUptime Minimum uptime (millis) for a script to not be considered "spinning" - --spinSleepTime Time to wait (millis) between launches of a spinning script. - --colors --no-colors will disable output coloring - --plain Disable command line colors - -d, --debug Forces forever to log debug output - -v, --verbose Turns on the verbose messages from Forever - -s, --silent Run the child script silencing stdout and stderr - -w, --watch Watch for file changes - --watchDirectory Top-level directory to watch from - --watchIgnore To ignore pattern when watch is enabled (multiple option is allowed) - -t, --killTree Kills the entire child process tree on `stop` - --killSignal Support exit signal customization (default is SIGKILL), - used for restarting script gracefully e.g. --killSignal=SIGTERM - Any console output generated after calling `forever stop/stopall` will not appear in the logs - -h, --help You're staring at it - - [Long Running Process] - The forever process will continue to run outputting log messages to the console. - ex. forever -o out.log -e err.log my-script.js - - [Daemon] - The forever process will run as a daemon which will make the target process start - in the background. This is extremely useful for remote starting simple node.js scripts - without using nohup. It is recommended to run start with -o -l, & -e. - ex. forever start -l forever.log -o out.log -e err.log my-daemon.js - forever stop my-daemon.js +$ forever --help +usage: forever [action] [options] SCRIPT [script-options] + +Monitors the script specified in the current process or as a daemon + +actions: + start Start SCRIPT as a daemon + stop Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script + stopall Stop all running forever scripts + restart Restart the daemon SCRIPT + restartall Restart all running forever scripts + list List all running forever scripts + config Lists all forever user configuration + set Sets the specified forever config + clear Clears the specified forever config + logs Lists log files for all forever processes + logs Tails the logs for + columns add Adds the specified column to the output in `forever list`. Supported columns: 'uid', 'command', 'script', 'forever', 'pid', 'id', 'logfile', 'uptime' + columns rm Removed the specified column from the output in `forever list` + columns set Set all columns for the output in `forever list` + columns reset Resets all columns to defaults for the output in `forever list` + cleanlogs [CAREFUL] Deletes all historical forever log files + +options: + -m MAX Only run the specified script MAX times + -l LOGFILE Logs the forever output to LOGFILE + -o OUTFILE Logs stdout from child script to OUTFILE + -e ERRFILE Logs stderr from child script to ERRFILE + -p PATH Base path for all forever related filesĀ (pid files, etc.) + -c COMMAND COMMAND to execute (defaults to node) + -a, --append Append logs + -f, --fifo Stream logs to stdout + -n, --number Number of log lines to print + --pidFile The pid file + --uid DEPRECATED. Process uid, useful as a namespace for processes (must wrap in a string) + e.g. forever start --uid "production" app.js + forever stop production + --id DEPRECATED. Process id, similar to uid, useful as a namespace for processes (must wrap in a string) + e.g. forever start --id "test" app.js + forever stop test + --sourceDir The source directory for which SCRIPT is relative to + --workingDir The working directory in which SCRIPT will execute + --minUptime Minimum uptime (millis) for a script to not be considered "spinning" + --spinSleepTime Time to wait (millis) between launches of a spinning script. + --colors --no-colors will disable output coloring + --plain Disable command line colors + -d, --debug Forces forever to log debug output + -v, --verbose Turns on the verbose messages from Forever + -s, --silent Run the child script silencing stdout and stderr + -w, --watch Watch for file changes + --watchDirectory Top-level directory to watch from + --watchIgnore To ignore pattern when watch is enabled (multiple option is allowed) + -t, --killTree Kills the entire child process tree on `stop` + --killSignal Support exit signal customization (default is SIGKILL), + used for restarting script gracefully e.g. --killSignal=SIGTERM + Any console output generated after calling `forever stop/stopall` will not appear in the logs + -h, --help You're staring at it + +[Long Running Process] + The forever process will continue to run outputting log messages to the console. + ex. forever -o out.log -e err.log my-script.js + +[Daemon] + The forever process will run as a daemon which will make the target process start + in the background. This is extremely useful for remote starting simple node.js scripts + without using nohup. It is recommended to run start with -o -l, & -e. + ex. forever start -l forever.log -o out.log -e err.log my-daemon.js + forever stop my-daemon.js ``` There are [several examples][1] designed to test the fault tolerance of forever. Here's a simple usage example: ``` bash - $ forever -m 5 examples/error-on-timer.js +$ forever -m 5 examples/error-on-timer.js ``` ### JSON Configuration Files @@ -124,7 +124,7 @@ In addition to passing forever the path to a script (along with accompanying opt // forever/development.json { - // Comments are supported + // Comments are supported "uid": "app", "append": true, "watch": true, @@ -182,7 +182,7 @@ The forever module exposes some useful methods to use in your code. Each method **Remark:** As of `forever@0.6.0` processes will not automatically be available in `forever.list()`. In order to get your processes into `forever.list()` or `forever list` you must instantiate the `forever` socket server: ``` js - forever.startServer(child); +forever.startServer(child); ``` This method takes multiple `forever.Monitor` instances which are defined in the `forever-monitor` dependency. @@ -247,7 +247,7 @@ Make sure that the user running the process has the appropriate privileges to re ## Run Tests ``` bash - $ npm test +$ npm test ``` #### License: MIT