pm2起了2个子进程,这2个子进程可以通信吗?
发布于 3 年前 作者 zhou-yg 4003 次浏览 来自 问答

主要是我会用调用api,通过child_process.spawn调一些脚本,同时缓存这个process对象,因为这个子进程有时候需要通过调用api来强行kill,

由于pm2分配的问题,强行kill的请求就发送不到对应的那个保存了process对象的那个子进程,导致kill失败。

求解。

5 回复

你这种设计在程序多实例的情况是行不通的 api访问时pm2会随机给你一个服务进程的以至于kill不了 一般多进程通信最好用中间服务来解决 比如用redis 你可以把缓存放在redis里面 当你kill的时候 当前服务进程直接读取redis然后kill就好了

@showen nodejs可以通过pid来直接调api kill进程吗?

如果你只是要kill进程的话 讲道理是可以的 pm2开启的服务pid存在~/.pm2文件夹里面,你读了之后exec kill $pid 就可以了,但是唯一的缺点是 不优雅 From Noder

@zhou-yg 当然可以 nodejs可以执行系统里面所有有权限执行的命令

回到顶部