Я запускаю приложение Mean Stack на экземпляре Amazon EC2, и серверы Angular и Node работают в режиме демона, используя pm2.Но сервер перестает случайным образом реагировать через несколько дней, и он работает нормально, если я перезапускаю процессы pm2.
Я попытался прослушать порт и перезапустить процесс соответствующим образом с помощью этого сценария оболочки.Но это не помогло мне
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: connectECONNREFUSED 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 (домен.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) в Socket.(/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 (внутренний / streams / destroy.js: 82: 8) в emitErrorAndCloseNT (внутренний / streams / destroy.js: 50: 3) вargs. (анонимная функция) (/usr/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29) в process._tickCallback (внутренний / process / next_tick.js: 63: 19)
Пожалуйста, дайте мне знать, где именно проблема?