Node.js 永远停止服务器。js返回;server.js不是永久进程的有效索引。”;
我继承了一个服务器,我有一个奇怪的问题。我在运行Node.js 永远停止服务器。js返回;server.js不是永久进程的有效索引。”;,node.js,sudo,forever,Node.js,Sudo,Forever,我继承了一个服务器,我有一个奇怪的问题。我在运行forever start server.js时遇到了一个问题,它没有返回消息,然后forever list没有显示任何正在运行的forever进程。经过一番挖掘,我发现有些人建议永远以sudo的身份跑步 在我运行了sudo forever start server.js之后,它似乎启动得很好,forever list显示server.js正在运行。然而,现在我无法停止这个过程。运行kill会从顶部显示的列表中删除节点,但始终会将server.js
forever start server.js
时遇到了一个问题,它没有返回消息,然后forever list
没有显示任何正在运行的forever进程。经过一番挖掘,我发现有些人建议永远以sudo
的身份跑步
在我运行了sudo forever start server.js
之后,它似乎启动得很好,forever list
显示server.js正在运行。然而,现在我无法停止这个过程。运行kill
会从顶部显示的列表中删除节点,但始终会将server.js视为正在运行。运行sudo forever stop server.js
返回错误“server.js不是永久进程的有效索引”。运行sudo forever stopall
或sudo 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)
node.js:63
投掷e;
^
TypeError:无法调用未定义的方法“replace”
在Argv(/usr/local/lib/node/.npm/optimist/0.1.2/package/lib/optimist.js:38:33)
反对。(/usr/local/lib/node/.npm/forever/0.3.0/package/bin/forever:81:26)
在模块上编译(node.js:462:23)
在模块处。加载脚本同步(node.js:469:10)
在Module.loadSync(node.js:338:12)
在loadModule(node.js:283:14)
在需要时(node.js:411:14)
反对。(/usr/local/bin/forever:11:18)
在模块上编译(node.js:462:23)
在模块处。加载脚本同步(node.js:469:10)
无论我做什么,我都无法停止server.js。我猜永远是有点过分热心于它的使命。有什么建议吗?不知道为什么会这样,但出于某种原因,它解决了我的问题。嗯,不是全部,而是部分。当我su root
然后运行forever命令时,我可以start
和stopall
无障碍运行。对于永久停止服务器.js仍然会出现相同的错误,因此无论出于何种原因,我都无法以那种方式停止服务器,但我通过能够像su root
那样运行永久停止所有
来解决这个问题,因为您将永久进程作为根进程启动。实际上,如果在命令提示符中键入ps aux | grep forever | grep-v grep
,您将看到进程的所有者是root。只有root可以启动/停止进程。好的,我明白了。我想用sudo
运行它也会以同样的方式运行。我会在进行过程中弄明白这一点,所以我很感谢你的解释。仍然没有解释为什么它不接受永久停止server.js
作为有效命令。知道为什么吗?ps aux | grep'server.js | grep-v grep
输出的最后一列的值是多少?有两行。第一行的最后一列是/usr/local/bin/forever start server.js
,第二行是server.js
。