永远停止server.js返回“server.js不是永久进程的有效索引。”

时间:2013-07-22 02:18:15

标签: node.js sudo forever

我继承了一台服务器而且我遇到了一个奇怪的问题。我在运行forever start server.js时遇到问题,它没有返回消息,然后forever list没有显示任何永久进程正在运行。经过一番挖掘,我发现有些人建议永远作为sudo运行。

在我运行sudo forever start server.js后,它似乎正常启动,forever list显示server.js正在运行。但是,现在我无法阻止这个过程。运行kill会从top中显示的列表中删除节点,但Forever仍会将server.js视为正在运行。运行sudo forever stop server.js将返回错误“server.js不是永久进程的有效索引。”正在运行sudo forever stopallsudo forever list

node.js:63
    throw e;
    ^
TypeError: Cannot call method 'replace' of undefined
    at Argv (/usr/local/lib/node/.npm/optimist/0.1.2/package/lib/optimist.js:38:33)
    at Object.<anonymous> (/usr/local/lib/node/.npm/forever/0.3.0/package/bin/forever:81:26)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)
    at Module.loadSync (node.js:338:12)
    at loadModule (node.js:283:14)
    at require (node.js:411:14)
    at Object.<anonymous> (/usr/local/bin/forever:11:18)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)

无论我做什么,我都无法阻止server.js。我想永远在它的使命中有点过分热心。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不知道为什么会这样,但由于某种原因,它解决了我的问题。不完全,但部分。当我su root然后运行forever命令时,我能够startstopall顺利完成。仍然会为forever stop server.js收到相同的错误,因此无论出于何种原因我无法以这种方式停止服务器,但我能够以forever stopall作为su root来运行它。< / p>