我在服务器上运行 PM2,处理一些 Node.Js
进程。它在大部分时间运行良好。有时我因为各种原因需要暂时停止服务。
奇怪的是,我无法从 stopped
状态启动进程。换句话说,我无法执行 pm2 stop myproject && pm2 start myproject
或 pm2 restart myproject
。每当我这样做时,PM2 都会显示以下消息:
[PM2] Applying action restartProcessId on app [myproject](ids: [ xx ])
[PM2][ERROR] Process xx not found
我已通过删除进程并重新开始来解决此问题。
pm2 delete myproject && pm2 start app.config.js
它有效,但我认为这不是一个好方法。特别是当我需要多次停止服务以进行测试时。
这是 app.config.js
文件
module.exports = {
apps: [
{
name: 'myproject',
script: './build/server.js',
instances: 1,
exec_mode: 'cluster',
autorestart: true,
watch: ['server.js', 'app.config.js', 'src'],
watch_delay: 1000,
ignore_watch: ['node_modules', 'logs'],
exp_backoff_restart_delay: 2000,
max_memory_restart: '100M',
log_file: './logs/app.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss',
combine_logs: true,
env: {
SOME_ENV: 'some_value'
}
}
]
};
请帮我解决这个问题。任何反馈都非常感谢。
[编辑]附加信息:
PM2 error: [RestartProcessId] PM2 is being killed, stopping restart procedure...
pm2 status
在我运行 stopped
后显示 pm2 restart myproject
。它没有可见的 id,但我可以使用 pm2 show myproject
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
│ │ myproject │ cluster │ 0 │ stopped │ 0% │ 64.1mb │