Как запускать приложения в фоновом режиме с помощью pm2 из сценария nodejs? - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь создать приложение, которое позволяет мне создавать демонстрации других моих приложений и запускать их на поддомене. Теперь все работает, когда я запускаю свое приложение с помощью команды node server.js, но когда я запускаю его в фоновом режиме с помощью pm2 start server.js, следующий сценарий не работает. Когда я вхожу в свою каплю с помощью S SH и запускаю pm2 status, скрипт запуска демонстрационного приложения отсутствует в списке. Что делать?

const runInitialServerConfigurationNodejs = async (subdomain, port) => {
    await shellPromise(`cp /var/www/${subdomain}_app/server/.env.example /var/www/${subdomain}_app/.env`);
    await shellPromise(`cd /var/www/${subdomain}_app/server && yarn`);
    await shellPromise(`mv /var/www/${subdomain}_app/server/server.js /var/www/${subdomain}_app/server/${subdomain}.js`);
    await shellPromise(`echo "APP_ENV=production" >> /var/www/${subdomain}_app/server/.env`);
    await shellPromise(`echo "MONGODB_KEY=mongodb://localhost:27017/${subdomain}_db" >> /var/www/${subdomain}_app/server/.env`);
    await shellPromise(`echo "NODE_PORT=${port}" >> /var/www/${subdomain}_app/server/.env`);
    await shellPromise(`cd /var/www/${subdomain}_app/server && pm2 start ${subdomain}.js && pm2 save && pm2 set pm2:autodump true`); // doesnt work here

}

1 Ответ

0 голосов
/ 20 июня 2020

Как-то pm2 в моей реализации не работает. Однако мне удалось заставить его работать с помощью модуля forever.

...