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

无法使用pm2启动节点进程

令狐昂雄
2023-03-14
[PM2] Starting /srv/myapp/index.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ index    │ 0  │ fork │ 14528 │ online │ 0       │ 0s     │ 0%  │ 16.0 MB   │ root │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

这里会出什么问题?我该怎么修好它?

共有1个答案

祁承望
2023-03-14

PM2用node启动应用程序,一个问题是它不像用其他方式启动应用程序那样提供任何日志记录或输出(例如node index.js这样),因此它不会真正让您知道是否有任何错误。

我一直发现,在PM2之前用node启动应用程序是个好主意。

给定节点index.js导致错误:从'Bluebird'导入bb;syntaxerror:意外令牌导入,这使您听起来像是在使用ES6导入特性,而Node默认情况下不支持该特性。我怀疑Yarn可能启用了这些特性,或者在执行码启动时将ES6代码传递到ES5以便Node运行,但我对Yarn并不熟悉。

您可能指向了错误的文件,并且已经创建了一个transpiled文件dist.js(作为示例),Yarn正在愉快地使用不透明的start命令运行。

编辑:查看源代码后,它似乎使用了名为Babel-Node的东西。请参见package.json中的开始脚本:

"scripts": {
  "start": "babel-node index.js",

pm2不知道如何使用这个babel-node来运行index.js,即使它使用了babel-node,babel-node强烈建议您不要在生产中使用babel-node(您可能正在使用pm2):

查看带有Babel的示例Node.js服务器,了解如何在生产部署中使用Babel。

还有一个关于ES6模块加载的注意事项:

由于技术上的限制,ES6样式的模块加载可能不能按预期的方式运行。>A babel-node REPL不完全支持ES6样式的模块加载。

"scripts": {
  "start": "babel-node index.js",
  "build": "babel index.js --out-file index-dist.js
 类似资料:
  • 在Windows AWS服务器上,我有一个节点应用程序,我正在使用PM2启动该应用程序 我已经尝试了npms:“pm2-windows-startup”和“pm2-windows-service” 但是在我重新启动AWS实例并运行 列表中没有节点应用程序。.. null 我的PM2文件包含: 2017-03-13 07:37:48:=================================

  • 我想运行以下pm2任务: 它应该运行以下两个脚本: 但是,这似乎只是启动脚本。是否有一种方法可以用以外的其他名称来定位脚本?

  • 我对Appium是新来的。由于以下错误,我无法启动Appium节点服务器 使用命令c:\program Files(x86)\Appium\node.exe lib\server\main.js启动Appium服务器--地址127.0.0.1--port 4723--platform-name Android--platform-version 23--automation-name Appium

  • 我很难在服务器重新引导时重新启动pm2(它本身和两个节点/express文件,&)。 下面是我尝试的过程: 我在所有可能的组合中运行了上面的命令,但没有任何工作。我试着以根用户的身份运行,但也不起作用。 我的文件包含信息,所以我不知道还可以在哪里查找。 我尝试的其他参考资料... http://pm2.keymetrics.io/docs/usage/startup/ https://www.di

  • 我发现了这个,结果是windows 10上的pm2问题。 那篇文章末尾建议的变通办法似乎很管用。 基本上,首先安装node-cmd,然后创建一个startscript.js:

  • pm2-init.sh文件: 这不起作用,所以我尝试使用,如下所示:首先,创建一个脚本,并将其命名为 然后打开编辑器: