我正在Amazon EC2实例上运行Mean Stack应用程序,并且Angular和Node服务器都使用pm2在守护程序模式下运行。但是服务器在几天后停止随机响应,并且如果我重新启动pm2进程,它将正常工作。
我尝试监听该端口,并使用此Shell脚本相应地重新启动该过程。但它对我有用
if sudo lsof -ti tcp:port_number ; then
echo "Command succeeded for mongod"
else
sudo service mongod stop
sleep 20
sudo service mongod start
pm2 restart 2
fi
if sudo lsof -ti tcp:port_number ; then
echo "Command succeeded for server"
else
pm2 restart 2
fi
if sudo lsof -ti tcp:port_number ; then
echo "Command succeeded for app"
else
pm2 restart 0
fi
在PM2中记录错误
MongoNetworkError:首次连接时无法连接到服务器[localhost:27017] [MongoNetworkError:连接ECONNREFUSED 127.0.0.1:27017] 在游泳池。 (/var/www/html/projectFolder/node_modules/mongodb-core/lib/topologies/server.js:503:11) 在Pool.emit(events.js:182:13) 在Pool.EventEmitter.emit(domain.js:442:20) 在连接。 (/var/www/html/projectFolder/node_modules/mongodb-core/lib/connection/pool.js:326:12) 在Object.onceWrapper(events.js:273:13) 在Connection.emit(events.js:182:13) 在Connection.EventEmitter.emit(domain.js:442:20) 在套接字。 (/var/www/html/projectFolder/node_modules/mongodb-core/lib/connection/connection.js:245:50) 在Object.onceWrapper(events.js:273:13) 在Socket.emit(events.js:182:13) 在Socket.EventEmitter.emit(domain.js:442:20) 在emitErrorNT上(内部/流/destroy.js:82:8) 在emitErrorAndCloseNT(internal / streams / destroy.js:50:3) 在args(匿名函数)(/usr/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29) 在process._tickCallback(internal / process / next_tick.js:63:19)
请让我知道问题出在哪里?