← 全部工具

forever

热度 65 更新于 开发与构建

A simple CLI tool for ensuring that a given node script runs continuously (i.e. forever)

npmauto-collected

安装

npm
npm install -g forever

通过 npm 安装。

forever

A simple CLI tool for ensuring that a given script runs continuously (i.e. forever). Note that this project currently fully depends on the community for implementing fixes and new features. For new installations we encourage you to use pm2 or nodemon

Installation

  $ [sudo] npm install forever -g

Note: If you are using forever programmatically you should install [forever-monitor][0].

  $ cd /path/to/your/project
  $ [sudo] npm install forever-monitor

Usage

There are two ways to use forever: through the command line or by using forever in your code. Note: If you are using forever programatically you should install [forever-monitor][0].

Command Line Usage

You can use forever to run scripts continuously (whether it is written in node.js or not).

Example

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

set <key <val Sets the specified forever config <key clear <key Clears the specified forever config <key logs Lists log files for all forever processes logs <script|index Tails the logs for <script|index columns add <col Adds the specified column to the output in forever list. Supported columns: 'uid', 'command', 'script', 'forever', 'pid', 'id', 'logfile', 'uptime' columns rm <col Removed the specified column from the output in forever list columns set <cols 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