如何在某个节点版本上运行pm2?

hwo*_*gzk 9 node.js pm2

我们的linux服务器上运行了几个不同版本的节点,我的服务基于节点v0.11.14.但是,其他人的代码必须在较低版本的节点上运行(低于v0.11),否则他们的服务将停止服务.所以我不能将全局节点版本定义为v0.11.我只想运行pm2来监视基于节点v0.11的服务.

无论如何在节点v0.11上运行我的pm2而不更改全局节点版本?谢谢

Syl*_*ain 7

同时运行多个版本.在pm2,您可以使用这些--interpreter选项并指定所需节点版本的路径.

如果您使用n版本运行n bin v4.2.0来获取此节点版本的路径.

  • 上次我检查过,它在集群模式下损坏了。现在可以用了吗? (2认同)

小智 7

使用pm2并使用带有节点版本绝对路径的--interpreter标志指定节点版本:

sudo pm2 start app.js --interpreter=/home/ken/.nvm/v4.4.2/bin/node
Run Code Online (Sandbox Code Playgroud)

要么

sudo pm2 start app.js --interpreter=/home/ken/.nvm/v7.4.0/bin/node
Run Code Online (Sandbox Code Playgroud)

等等..

如果您在我提到--interpreter="***.."的任何地方都更改了节点版本,则该应用将以确切的节点版本运行。

完成上述方法以验证后,请使用以下命令

sudo pm2 show 'app name'
Run Code Online (Sandbox Code Playgroud)


小智 5

请阅读以下主题: 通过每个应用程序通过nvm使用不同版本的节点

我相信您想破解nvm,但相信我可以节省很多时间。

您可以在pm2所有者本身的线程中找到注释,该注释指出您可以在不同的节点版本上运行多个应用,这是JSON conf内容:

{ 
  apps : [{
    name : 'API',
    script : 'api.js',
    interpreter : 'node@6.9.1'
 }]
}
Run Code Online (Sandbox Code Playgroud)

如果您对以上解决方案感兴趣,请在此处阅读文档: PM2-流程文件

PM2支持您的流程管理工作流程。它允许您通过进程文件微调每个应用程序的行为,选项,环境变量和日志文件。对于基于微服务的应用程序特别有用。

支持的配置格式为Javascript,JSON和YAML。

  • 如果使用群集模式,在执行此操作时要记住一些事情。...[PM2] [WARN]不支持在群集模式下选择Node.js版本。这意味着,所有应用程序都将使用执行pm2的相同版本的节点。 (4认同)

Yev*_*nov -3

安装https://github.com/creationix/nvm

然后安装特定的节点版本:

nvm install 0.11.14
Run Code Online (Sandbox Code Playgroud)

比在 shell 中使用特定版本:

nvm use 0.11.14

node -v // v0.11.14
Run Code Online (Sandbox Code Playgroud)