我有一个Express服务器,其package.json
包含bin
部分,用于创建运行应用程序的链接。
我想使用pm2
运行服务器,并生成了如下生态系统文件:
module.exports = {
apps : [{
name: 'myServer',
script: 'myserver',
max_memory_restart: '500M',
env: {
NODE_ENV: 'development',
USER_CONFIG_FILE: '/etc/myserver/myserver-config.json'
},
env_production: {
NODE_ENV: 'production'
},
disable_logs: true
}]
};
生态系统文件在我的用户的主文件夹中(因为它将包含所有应用程序(,当我运行pm2 start
时,服务器会正确启动,但应用程序表的version
列显示N/A。
我还尝试将cwd
字段添加到生态系统文件中,该字段设置为安装服务器的目录。
只有当我从服务器安装文件夹中运行pm2 start main.js
时,pm2
才能正确显示应用程序版本。
有什么方法可以告诉pm2
在从任意文件夹启动时如何提取应用程序版本吗?
我找到了一个解决方法,避免使用通过bin
部分创建的链接。我使用生态系统字段cwd
指向包含package.json
的文件夹,并用主脚本的名称设置script
。
module.exports = {
apps : [{
name: 'myServer',
cwd: '/path/to/app/',
script: 'index.js',
max_memory_restart: '500M',
env: {
NODE_ENV: 'development',
USER_CONFIG_FILE: '/etc/myserver/myserver-config.json'
},
env_production: {
NODE_ENV: 'production'
},
disable_logs: true
}]
};