Forever + Nodemon一起运行
有没有办法让这两个包一起运行?
所以基本上我想两全其美。 自动运行服务器(并在出现错误时重新启动),并且在发生.js文件更改时自动更新。
你应该像这样运行
forever start -c nodemon app.coffee Toxa在正确的轨道上, cfogelberg提出的问题是有效的,但为了避免这个问题,你可以做到以下几点:
 forever -c nodemon --exitcrash app.js 
 这确保nodemon实际上退出(而不是给你“应用程序崩溃”的消息),然后forever拿起它。 
 在forever --help这个-c指定一个命令运行,否则它默认节点。 没有-c导致在这个答案的评论中提到的错误。 
 在nodemon FAQ中有一个关于它的条目: 
如果你永远使用nodemon(也许在生产环境中),你可以把两者结合在一起。 这样,如果脚本崩溃,永远重新启动脚本,并且如果有文件更改,nodemon将重新启动脚本。 有关更多详细信息,请参阅问题30 。
为了达到这个目标,你需要在呼叫中join以下内容:
- 使用永远的
-c nodemon选项永远告诉运行nodemon而不是node。- 如果脚本崩溃(或意外退出),请包含nodemon
--exitcrash标志以确保nodemon退出。- 当请求nodemon停止时,请永远使用
SIGTERM而不是SIGKILL。 这确保nodemon可以干净地停止观看的节点进程。- 可以select添加
--uid参数,为stream程添加一个唯一的名称。 在这个例子中,uid被设置为foo。
bash forever start --uid foo --killSignal=SIGTERM -c nodemon --exitcrash server.js为了testing这个,你可以杀掉server.js进程并永远重启。 如果
touch server.jsnodemon将重新启动它。要停止永久和nodemon监视的进程,只需使用上面指定的
uid(foo)调用以下内容:
bash forever stop foo这将停止nodemon和它正在监视的节点进程。
请注意,我不build议在生产环境中使用nodemon – 但这是因为如果没有我的明确指示,我不希望它重新启动。
我还没有find让两个软件包一起运行的方法。 我试图做@ toxa的技术,但是当我的node.js应用程序抛出一个exceptionnodemon不会自动重新启动它,而是输出一个错误消息到永远日志:
 nodemon] app crashed - waiting for file changes before starting... 
 然而,永远有一个-w选项,下面的命令和我运行nodemon并永远在一起的效果是一样的: 
 forever start -w my-app.js 
  forever -w与nodemon : forever不会有–delay选项的缺点,所以我的服务器重新启动一次每个文件被更改。 
我更喜欢Toxa和Jubairbuild议的组合。
 forever start -c nodemon app.coffee --exitcrash 
如果你需要传递参数:
 forever start -c "nodemon --harmony" app.js --exitcrash 
我使用永远服务 。 。 。
这是为我工作。 它执行以下操作:每次修改应用程序dist / assets文件夹中的json或raml文件时,请等待10秒钟,然后重新启动节点应用程序(server.js脚本):
 $ forever-service install raml --script server.js -f " -c nodemon" -o " --delay 10 --watch dist/assets -e json,raml --exitcrash" -e "PATH=/usr/local/bin:$PATH" 
然后我可以运行:
 $ service raml start|stop|restart|status 
我也可以使用chkconfig实用程序在服务器重启时启动服务:
 $ chkconfig --add raml $ chkconfig raml on