首页 > 解决方案 > pm2 --interpreter 选项不能通过脚本工作

问题描述

我正在运行一个脚本来使用特定版本的节点启动 pm2 进程。

我的脚本是这样的:

#!/bin/bash
export NVM_DIR=$HOME/.nvm;
source $NVM_DIR/nvm.sh;

npx pm2 flush
npx pm2 kill

echo "starting service"
pushd ./my-service || exit
nvm use 12.22.5
which node # prints <home>/.nvm/versions/node/v12.22.5/bin/node
which pm2 # prints <home>/.nvm/versions/node/v12.22.5/bin/pm2
node -v # prints v12.22.5
pm2 -v # prints 5.1.2
npx pm2 start pm2.config.js --env local --interpreter="<home>/.nvm/versions/node/v12.22.5/bin/node" --watch 2>&1
popd || exit
npx pm2 logs

但是,当我process.version在应用程序中打印时,它显示 v14.17.4 - 这是脚本外部外壳中使用的版本。(pm2 以集群模式运行进程)

标签: node.jsbashpm2nvm

解决方案


推荐阅读