当前位置: 首页 > 知识库问答 >
问题:

ubuntu服务器上PM2和DotEnv不工作的问题

公孙英飙
2023-03-14

我知道这个问题有答案,但我不想再创建一个配置文件,加载那里的所有配置并运行pm2进程。

Project Structure
-----------------
.env
index.js -> server is listening in this file
routes/
models/
middleware/
startup/
package.json
...

package.json内部

{
  "name": "eventbooking",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node -r dotenv/config index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@hapi/joi": "^15.0.3",
    "bcryptjs": "^2.4.3",
    "compression": "^1.7.4",
    "dotenv": "^8.0.0",
    "express": "^4.17.1",
    "express-async-errors": "^3.1.1",
    "helmet": "^3.18.0",
    "joi-objectid": "^2.0.0",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.5.14",
    "winston": "^3.2.1"
  }
}

现在我已经将项目部署到服务器上,如果我手动运行

npm启动

然后工作很好。

pm2 start index.js --name "Event Booking"

然后得到以下内容

 App name │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem      │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤ 

│ index    │ 0  │ 1.0.0   │ fork │ 29897 │ online │ 0       │ 0s     │ 0%  │ 3.7 MB   │ root │ disabled 

但项目不起作用。什么问题。

即使我将以下内容作为

pm2 start -r dotenv/config index.js --name 'Event Booking'

错误:未知选项'-r'

使用pm2运行脚本的任何其他解决方案

共有1个答案

漆雕令秋
2023-03-14

您需要遵循我在这里回答的注意事项:https://stackoverflow.com/a/55853036/2208713。我可以从你上面的问题中看出你把pm2语法和NPM混在一起了。如果你从我的回答中提取模式,你将能够很容易地做到这一点--但请小心遵循我的指示!

 类似资料:
  • 但是在我使用运行应用程序的服务器上,环境变量仍然。 我用来在服务器上运行应用程序的pm2命令是:

  • 我试图在Linux Red Hat Entreprise Linux release 5.11(Tikanga)服务器上安装GlassFish4.0。 因此,我按照以下网站说明成功地在该服务器上安装了Java JDK1.7.0_79和NetBeans4.0:https://blog.idrsolutions.com/2014/02/tutorial-setting-up-glassfish-on-

  • 我一直在努力从我的ubuntu服务器发送邮件。奇怪的是,它在我的mac上的本地tomcat实例上运行得非常好。 以下是我的实现: 让我恼火的是,javamail的输出日志在我的服务器和本地是一样的,而且没有错误: 到目前为止我所做的一切 > 检查我的垃圾邮件(比如一千次,以防万一... 尝试了其他端口,如465和25- 使用iptable打开587端口 iptables -A 输出 -p tcp

  • 我正在尝试将大量文件从服务器A传输到服务器B。我已经在A上设置了FTP(使用FileZilla)。 当我尝试从PC连接到A时,它工作正常。但当我尝试从B连接到A时,它不起作用。FTP用户登录,但目录列表命令一直处于停滞状态。 防火墙端口21已打开。我尝试了多台服务器、不同的FTP客户端,但没有用。除了FileZilla,我还尝试了内置FTP服务的ISS,得到了相同的结果。 使用相同凭据从本地完美连

  • 问题内容: 我设置了 詹金斯 , PM2 在 AWS Ubuntu的 服务器。我有一个网站, 一个 是内置的 詹金斯 。该 詹金斯 然后将启动该网站 PM2 在配置的外壳。但是,只有我通过手动登录 ubuntu 服务器来启动网站并运行才能使网站运行。 这个问题似乎 PM2 由用户启动 詹金斯 将 不会 被外界看到。只有由用户 ubuntu 启动(通过ssh ubuntu @ myubuntuser

  • 传入我的应用程序ID。我在某处读到配置在解析服务器上不起作用,但想确认一下