我在AWS EC2服务器上运行我的节点应用程序。
为了进行持续集成,我在EC2上安装了Jenkins,jenkins连续轮询代码提交,并在提交发生时执行一些用脚本编写的命令。

最后一条命令是

pm2启动server.js

一切正常,并且构建成功显示,但是稍后当我访问URL时,该站点没有显示。

我在节点服务器前面有一个Nginx服务器,它给出了
502错误的网关

经过检查,我发现节点应用程序未运行,因此我检查了pm2日志并发现了这种情况-

2016-08-12 07:53:28:[[[[PM2 / God守护进程启动]]]]

2016-08-12 07:53:28:端口/var/lib/jenkins/.pm2/pub.sock上的BUS系统[READY]

2016-08-12 07:53:28:端口/var/lib/jenkins/.pm2/rpc.sock上的RPC接口[READY]

2016-08-12 07:53:28:在-fork模式-中启动应用程序名称的执行顺序:服务器ID:0

2016-08-12 07:53:28:应用程序名称:服务器ID:0在线

2016-08-12 07:53:28:pm2已被信号杀死,在退出前转储进程列表...

2016-08-12 07:53:28:删除进程0

2016-08-12 07:53:28:停止应用程序:服务器ID:0

2016-08-12 07:53:28:ID为[0]和PID为[25822]的应用[服务器],通过信号[SIGTERM]以代码[0]退出

2016-08-12 07:53:28:不再定义Proc或被杀死

2016-08-12 07:53:28:[PM2]和平退出

pm2一开始就被杀死,不知道为什么,尝试从npm重新安装pm2无效。

Ubuntu 14.04 LTS

节点v4.4.7 LTS

npm v2.15.8

pm2 v1.1.3

工作暂停,请立即获得帮助。

最佳答案

答案是在Dusan Bajic的评论中,如果有人使用节点应用程序在EC2上与jenkins进行持续集成,而pm2发生类似的情况,只需在启动pm2之前在脚本中添加此行即可。

出口BUILD_ID = dontKillMePlease

而不是

pm2启动server.js

采用

pm2重新启动server.js

如果您提交并以jenkins身份运行,则server.js作为您的应用程序或构建将失败,并且再次运行脚本,因为pm2已经在运行server.js且不会停止。

09-04 14:49
查看更多