我可以使用 pm2 来保持 Next.js 应用程序运行吗

opt*_*ure 27 amazon-ec2 npm pm2 next.js

我有一个 AWS EC2,仅用于保持 Next.js 客户端运行(目前没有后端)。目前,如果我进入终端并输入npm run develop,该网站将完美运行。但是,我希望这个进程始终在实例的后台运行。有什么办法可以用 pm2 做到这一点吗?

我已在全球范围内安装了它,但它不会让我运行pm2 start npm run develop. 顺便说一句,是的,我希望它现在在开发模式下运行。

Adi*_*iii 51

是的,但请确保该命令存在于 package.json 中

  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  }
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,pm2命令将是

pm2 start npm --  dev
#in your case
pm2 start npm --  develop
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者有一个@brc提到的好听的名字

pm2 start npm --name "next-js" -- dev
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在 EC2 上运行时,保存启动进程也是一个好习惯

PM2 可以生成启动脚本并配置它们,以便在预期或意外的计算机重新启动时保持进程列表完整。

https://pm2.keymetrics.io/docs/usage/startup/

pm2 startup
pm2 save

Run Code Online (Sandbox Code Playgroud)


小智 14

添加到最佳答案:您确实应该考虑使用:

pm2 start npm --  start
Run Code Online (Sandbox Code Playgroud)

因为它将运行生产构建,而不是开发(我知道OP询问了开发问题,但考虑到应用程序正在生产中,这是一个重要的功能。