如何知道名字的永久过程

时间:2014-12-16 01:30:39

标签: node.js forever

我有一个节点脚本,我需要在上传新版本之前停止永久进程,然后重新启动它;

问题是我只知道该进程的名称,并且

forever stop processName.js

不起作用,因为它期望索引或uid; 只知道名字就可以阻止它吗?

3 个答案:

答案 0 :(得分:3)

最后我得到了它,使用变量:

uid=$(forever list | grep processName.js | cut -c24-27) && forever stop $uid

答案 1 :(得分:0)

您还可以在启动过程时为该进程分配一个唯一的ID,然后可以使用该ID关闭它。它通过uid查找现有进程,如果正在运行则将其停止。然后它将再次以相同的唯一名称开始。

if forever list | grep 'my-unique-process'; then forever stop my-unique-process; fi
forever -a --uid my-unique-process start app.js

说明

如果该进程正在运行,则将其关闭。如果在不运行时将其关闭,则会抛出错误

Forever cannot find process with id

第一行寻找forever list命令的输出并匹配进程名称。简单的if-else shell。

在第二行中,-a将追加到日志中。如果您不使用-a,有时会显示“日志文件已存在”错误

--uid用于为进程分配唯一的ID。

答案 2 :(得分:0)

forever stop /home/user/server/script.js (full path)