node.js - 如何使用 nodejs 脚本中的 pm2 在后台运行应用程序?
问题描述
我正在尝试创建一个应用程序,该应用程序允许我创建其他应用程序的演示并在子域上运行它们。现在,当我通过命令运行我的应用程序时一切正常node server.js
,但是当我在后台使用 运行它时pm2 start server.js
,以下脚本不起作用。当我使用 SSH 登录到我的 droplet 并运行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
}
解决方案
不知何故 pm2 不适用于我的实现。但是,我设法使用 forever 模块让它工作。
推荐阅读
- javascript - 如果 max-width 和 max-height 都已设置,有没有办法防止延迟加载图像的内容重排?
- python-3.x - tkinter 在作为子进程生成时中断
- angular - 如何从另一个组件访问 [(ngModel)]?
- python - 无法在 Tkinter Treeview 中正确显示图像
- java - 为什么用Java编写参数构造函数时默认的无参数构造函数会失败?
- google-cloud-platform - 如何使用 Google Cloud Platform 测试计费上限?
- coding-style - 使用只有一个 JavaComputeNode 的子流是否正确
- javascript - 有没有办法在重定向到空白窗口以等待使用 JavaScript 加载之前在同一域下加载整个 URL?
- docusignapi - DocuSign webhook 从未重试
- facebook - 为什么 Facebook Graph API 会一遍又一遍地使用相同的“下一个”URL 响应?