node.js - 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 以集群模式运行进程)
解决方案
推荐阅读
- javascript - 如何从另一个浏览器窗口刷新一个浏览器窗口?
- node.js - node-oracledb 给出错误:NJS-044:在执行存储过程时,在此上下文中不需要命名 JSON 对象
- python - 如何使用 python 和 JIRA 模块单击 Jira 票证上的按钮
- php - 如何在yii2中使用pjax进行分页
- python - 无法从同一文件夹导入自定义模块
- python - pandas to_datetime 将日期时间字符串转换为 0
- javascript - 是否可以使用 JSON 对象在 jq 中进行嵌套查询?
- windows - 检查本地用户是启用还是禁用
- c - 当proc目录中没有cmdline文件时,如何检查进程是否在Unix上按名称运行?
- java - Kotlin 和 IntelliJ IDEA 中 Reactor 代码中的空类型安全性