“永远列表”说“没有永远的进程运行”,但它正在运行一个应用程序

时间:2012-01-05 05:46:44

标签: node.js ubuntu module

我已经用

启动了一款应用
forever start app.js

之后我打字,

forever list

并显示

The "sys" module is now called "util". It should have a similar interface.
info:   No forever processes running

但我用

检查了我的流程
ps aux | grep node

并显示

root      1184  0.1  1.5 642916  9672 ?        Ss   05:37   0:00 node     
/usr/local/bin/forever start app.js
root      1185  0.1  2.1 641408 13200 ?        Sl   05:37   0:00 node 
/var/www/app.js
ubuntu    1217  0.0  0.1   7928  1060 pts/0    S+   05:41   0:00 grep --color=auto node

我无法控制这个过程,因为我无法在“永远列表”中列出该过程

如何让“永远”了解其正在运行的流程并控制其运行流程。

5 个答案:

答案 0 :(得分:7)

应该使用与进程相同的用户调用

forever list。 通常它是root用户(除非指定了ubuntu upstart),因此您可以使用sudo su切换到root用户,然后尝试forever list

PS。最近移至pm2,其功能远远超过永远。

答案 1 :(得分:1)

我今天遇到了同样的问题。

在我的情况下:我正在使用NVM并忘记它没有设置/修改全局节点路径,所以我不得不手动设置它

export NODE_PATH="/root/.nvm/v0.6.0/bin/node"

答案 2 :(得分:1)

对此进行修复会很棒。
也遇到了这个。
我相信此问题已记录在 here
我现在可以推荐的是找到使用您的节点端口的进程,例如3000. 像这样:

sudo lsof -t -i:3000

该命令将显示进程 ID。
然后通过执行以下操作来终止进程:

kill PID

答案 3 :(得分:0)

如果您在init.d中执行forever start app.js,则应稍后键入sudo HOME=/home/pi/devel/web-app -u root forever list以获得正确的列表。

答案 4 :(得分:0)

sudo su
forever list

这将输出正确的列表(由 root 用户启动的进程)。