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

时间:2015-04-20 05:09:47

标签: node.js pm2

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

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

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:3)

请阅读以下主题: Using different versions of node via nvm for each app

我相信你想破解nvm,但相信我它可以节省你的大部分时间。

你可以在pm2所有者本身的线程中找到一条评论,它表明你可以在不同的节点版本上运行多个应用程序,这里是一个JSON conf内容:



{ 
  apps : [{
    name : 'API',
    script : 'api.js',
    interpreter : 'node@6.9.1'
 }]
}




如果您对上述解决方案感兴趣,请阅读此处的文档: PM2 - process file

  

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

     

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

答案 2 :(得分:3)

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

sudo pm2 start app.js --interpreter=/home/ken/.nvm/v4.4.2/bin/node

sudo pm2 start app.js --interpreter=/home/ken/.nvm/v7.4.0/bin/node

等等。

如果您在我提到的--interpreter="***.."处更改节点版本,该应用将在确切的节点版本上运行。

完成上述方法以验证是否使用以下命令

sudo pm2 show 'app name'

答案 3 :(得分:1)

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

然后安装特定节点版本:

nvm install 0.11.14

比在shell中使用特定版本:

nvm use 0.11.14

node -v // v0.11.14