首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图通过start & pm2启动应用程序时出错

试图通过start & pm2启动应用程序时出错
EN

Stack Overflow用户
提问于 2021-04-08 19:23:12
回答 2查看 2.6K关注 0票数 3

当试图通过纱线和pm2启动节点(Pm2)应用程序时,会收到一个错误。我的google fu没有发现任何有用的东西。我怀疑问题在于nvm,尽管我没有足够的经验来理解如何修复它。

Ubuntu 20.04

nvm 0.38.0

节点v14.5.0

纱线1.22.10

pm2 4.5.6

ecosystem.config.js

代码语言:javascript
运行
复制
module.exports = {
  apps: [
    {
        name: "next",
        script: "yarn",
        interpreter: "bash",
        args: "start:next",
        instances: 1,
        env: {
            NODE_ENV: "development",
        },
        env_staging: {
            NODE_ENV: "production",
        },
        env_production: {
            NODE_ENV: "production",
        }
    }
]

}

通过以下方式启动文件:

代码语言:javascript
运行
复制
pm2 start ecosystem.config.js --env staging

代码语言:javascript
运行
复制
pm2 start yarn --interpreter bash --name next -- start:next

接收错误:

代码语言:javascript
运行
复制
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/home/deploy/.pm2/pm2.log last 15 lines:
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: Script /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn had too many unstable restarts (16). Stopped. "errored"

/home/deploy/.pm2/logs/express-out.log last 15 lines:
/home/deploy/.pm2/logs/express-error.log last 15 lines:
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 7: var: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: syntax error near unexpected token `('
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: `var majorVer = parseInt(ver.split('.')[0], 10);'
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 7: var: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: syntax error near unexpected token `('
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: `var majorVer = parseInt(ver.split('.')[0], 10);'
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-09 03:16:26

--interpreter bash是你的问题。yarn不是bash脚本,而是一个JS程序。这样做:

代码语言:javascript
运行
复制
pm2 start yarn --name appname -- start:next
票数 12
EN

Stack Overflow用户

发布于 2022-04-28 19:12:25

我发现唯一的解决方案是通过定义一个特定的端口来运行它,在我的例子中,多亏了Brandon的评论,我找到了3000端口。这是命令

代码语言:javascript
运行
复制
pm2 start yarn --name appname -- start -p 3000

默认情况下,它运行到端口80。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67010589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档