传递给 PM2 的参数
Argument passing to PM2
我想将节点服务投入生产:
当我使用这样的参数启动我的应用程序时:node ./backend -c "uf4m6fhnh" -s "SPNLGZsUoSpQ=" -o "8696"
。一切正常。
现在我想用 PM2 将它投入生产:
我已经尝试了 2 种方法(CLI 和 JSON 文件),就像这样:
CLI 版本:
pm2 start backend.js --node-args="-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696" --name MyAppName
还有:
pm2 start backend.js --name MyAppName -- "-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696"
配置文件(JSON):
{
"apps": [
{
"name": "MyAppName ",
"script": "./backend.js",
"node_args": [
"-c",
"uf4lvm6fhnh",
"-s",
"SPNLGZsUoSpQ=",
"-o",
"8696"
]
}
]
}
然后:pm2 start myConfigJson.json
对于每个可能的解决方案,我的 pm2 logs
中都有相同的错误:
Error: Cannot find module '/home/me/Projects/Project/uf4lvm6fhnh'
(注意,未找到的模块是我传递的参数)
有什么想法吗?
改用args
。
node_args
是 interpreter_args
的别名,它将参数传递给节点本身,而不是脚本。因此,您的命令行最终会在节点本身上调用 -c|--check
。
见http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#programmatic-api and https://nodejs.org/api/cli.html#cli_c_check
我想将节点服务投入生产:
当我使用这样的参数启动我的应用程序时:node ./backend -c "uf4m6fhnh" -s "SPNLGZsUoSpQ=" -o "8696"
。一切正常。
现在我想用 PM2 将它投入生产: 我已经尝试了 2 种方法(CLI 和 JSON 文件),就像这样:
CLI 版本:
pm2 start backend.js --node-args="-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696" --name MyAppName
还有:
pm2 start backend.js --name MyAppName -- "-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696"
配置文件(JSON):
{
"apps": [
{
"name": "MyAppName ",
"script": "./backend.js",
"node_args": [
"-c",
"uf4lvm6fhnh",
"-s",
"SPNLGZsUoSpQ=",
"-o",
"8696"
]
}
]
}
然后:pm2 start myConfigJson.json
对于每个可能的解决方案,我的 pm2 logs
中都有相同的错误:
Error: Cannot find module '/home/me/Projects/Project/uf4lvm6fhnh'
(注意,未找到的模块是我传递的参数)
有什么想法吗?
改用args
。
node_args
是 interpreter_args
的别名,它将参数传递给节点本身,而不是脚本。因此,您的命令行最终会在节点本身上调用 -c|--check
。
见http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#programmatic-api and https://nodejs.org/api/cli.html#cli_c_check