深入领略Node.js 历程与线程(8000字长文彻底搞懂)
每次启动 Node.js 措施都必要在呼吁窗口输入呼吁 node app.js 才气启动,但假如把呼吁窗口封锁则Node.js 措施处事就会立即断掉。除此之外,当我们这个 Node.js 处事不测瓦解了就不能自动重启历程了。这些征象都不是我们想要看到的,以是必要通过某些方法来保卫这个开启的历程,执行 node app.js 开启一个处事历程之后,我还可以在这个终端上做些此外工作,且不会彼此影响。,当呈现题目可以自动重启。 怎样实现历程保卫 这里我只说一些第三方的历程保卫框架,pm2 和 forever ,它们都可以实现历程保卫,底层也都是通过上面讲的 child_process 模块和 cluster 模块 实现的,这里就不再提它们的道理。 pm2 指定出产情形启动一个名为 test 的 node 处事
pm2常用api
pm2 官网地点:
forever 就不非凡声名白,官网地点
留意:二者更保举pm2,看一下二者比拟就知道我为什么更保举行使pm2了。https://www.jianshu.com/p/fdc... linux 封锁一个历程
ps aux | grep server 声名:
上面是执行呼吁后在linux中表现的功效,第二个参数就是历程对应的PID
kill -l PID -l选项汇报kill呼吁用仿佛启动历程的用户已注销的方法竣事历程。 当行使该选项时,kill呼吁也试图杀死所留下的子历程。 但这个呼吁也不是总能乐成--或者如故必要先手工杀死子历程,然后再杀死父历程。
譬喻: kill -9 [PID] -9 暗示强制历程当即遏制 这个强盛和伤害的呼吁迫使历程在运行时溘然终止,历程在竣事后不能自我整理。 危害是导致体系资源无法正常开释,一样平常不保举行使,除非其他步伐都无效。 当行使此呼吁时,必然要通过ps -ef确认没有剩下任何僵尸历程。 只能通过终止父历程来消除僵尸历程。假如僵尸历程被init收养,题目就较量严峻了。 杀死init历程意味着封锁体系。 假如体系中有僵尸历程,而且其父历程是init, 并且僵尸历程占用了大量的体系资源,那么就必要在某个时辰重启呆板以破除历程表了。
杀死统一历程组内的全部历程。其应承指定要终止的历程的名称,而非PID。 killall httpd Node.js 线程 Node.js关于单线程的误区
如故看本文第一段代码,建设了http处事,开启了一个历程,都说了Node.js是单线程,以是 Node 启动后线程数应该为 1,可是为什么会开启7个线程呢?莫非Javascript不是单线程不知道小搭档们有没有这个疑问? 表明一下这个缘故起因: (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |