• 首页
  • nodejs
  • node.js 下 forever 利用别名启动 node 服务

node.js 下 forever 利用别名启动 node 服务

node.js forever 别名启动    


出自:node.js 下 forever 利用别名启动 node 服务


这一篇博文又和大家分享 forever 这个开源包.

今天说到的 forever 别名启动node.js 服务,和上一篇博文密切相关,涉及到 linux下创建硬链接 软链接的问题 ,还没有看的现在就去看看,不收费的,随便看!


我们平时如何用 forever 来启动 node 服务:

forever start app.js


利用 linux 软链接 (别名) forever 如何启动 node 服务:

forever start app_link

上面的 app_link 就是 app.js 文件在 linux 系统下的一个软链接


然并卵,这看上去好像一模一样.


当然存在的就是合理的,它一定有它的适用范围:


什么适用用别名去启动一个node.js 服务:

当你所在的测试环境部署了好几个应用,前面用 nginx 做反向代理.

而我们的 node.js 服务器启动文件 喜欢用 app.js 或者 index.js  对不对?


ok,那么问题就快要出现了.

[zhangzhi@portal ~]# forever list
info:    Forever processes running
data:        uid    command             script     forever pid  logfile                   uptime
data:    [0] 0D4G   /usr/local/bin/node app.js   537     3099 /root/.forever/a.log   3:21:28:21.634
data:    [1] FT5X   /usr/local/bin/node app.js 1898    1902 /root/.forever/b.log   90:15:23:19.11
data:    [2] Cr8D   /usr/local/bin/node app.js     2288    4915 /root/.forever/c.log   2:10:2:58.797
data:    [3] itbilu /usr/local/bin/node app.js 6893    6895 /root/.forever/d.log 61:21:5:36.54


上面这么壮观的场面也许是一种巧合, 4 个node.js 的应用 启动文件全部是 app.js .

但是平时遇到2个重名的几率还是很多了.

这时如果让你去停掉其中一个 node 服务.你该怎么办?

forever stop app.js

上面这样会死无全尸.当然,你如果能立即发现你把 4个服务全部关掉后,能迅速去启动另外3个node 服务也算一种补偿,最多会被 鞭尸而已.


那就算上面3个安然无恙的存在着,有一天一个小伙伴又想去停掉其中一个 服务,上面的悲剧一定会重演.


这时我们最好的办法就是 forever 别名启动 node.js 服务.

什么是别名,其实就算 linux 下的一个软链接, 给 启动文件设置一个 软链接.


我下面的软链接会按数字顺序排列,你在具体的业务相关的 node.js 服务,最好起名和业务相关,能一眼识别!


进入node服务1目录

ln -s ./app.js node_noe

这时在目录下回多出来一个 软链接 node_noe ,然后用 forever 启动它

forever start node_noe


依次进入 node 服务2目录 .....设置完后启动,最后你的 forever list 是这样的:

[zhangzhi@portal ~]# forever list
info:    Forever processes running
data:        uid    command             script     forever pid  logfile                   uptime
data:    [0] 0D4G   /usr/local/bin/node node_one   537     3099 /root/.forever/a.log   3:21:28:21.634
data:    [1] FT5X   /usr/local/bin/node node_two 1898    1902 /root/.forever/b.log   90:15:23:19.11
data:    [2] Cr8D   /usr/local/bin/node node_three     2288    4915 /root/.forever/c.log   2:10:2:58.797
data:    [3] itbilu /usr/local/bin/node node_four    6895 /root/.forever/d.log 61:21:5:36.54


这时你的Leader 再让你去停止某个业务的node 服务时,你就不必手慌脚乱了.

通过 别名一眼识别针对的是那个服务.然后

forever stop node_one

这样绝对不会污染其他的node 服务,何乐而不为呢.

回到顶部