Node.js 如何停止一个永远知道名字的过程

Node.js 如何停止一个永远知道名字的过程,node.js,forever,Node.js,Forever,我有一个节点脚本,在上传新版本并重新启动之前,我需要停止一个永久进程 问题是我只知道这个过程的名称,而且 forever stop processName.js 不工作,因为它需要索引或uid; 是否可以在只知道名称的情况下停止它?最后,我使用一个变量得到了它: uid=$(forever list | grep processName.js | cut -c24-27) && forever stop $uid 您还可以在启动进程时为其分配唯一的id,然后使用此id关闭进程

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

问题是我只知道这个过程的名称,而且

forever stop processName.js
不工作,因为它需要索引或uid;
是否可以在只知道名称的情况下停止它?

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

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

您还可以在启动进程时为其分配唯一的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
第一行查找
永久列表
命令的输出,并匹配进程名称。简单的,如果其他的外壳

在第二行中,
-a
将附加到日志中。如果不使用
-a
,有时会出现“日志文件已存在”的错误


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

也可以工作,而且它来自永久本身。而且,
--uuid
选项没有被弃用。编辑工作得很好。唯一的缺点是,如果您有两个processName.js进程,它不会杀死其中任何进程。值得注意的是--uid不适用于选项日志:
永远--uid我唯一的进程日志
forever stop /home/user/server/script.js (full path)