sudo pm2 start xxxx // 启动服务
sudo pm2 save // 保存服务
sudo pm2 startup // 把已启动服务加到systemd中
sudo systemctl reboot // 重启,发现之前的服务都已经启动
sudo pm2 unstartup systemd // 删除自动启动服务
如果不生效:
- 请检查是否是以sudo执行,或者是用su用户操作
- pm2 save 之后的文件是否有内容
- 应用依赖的其它进程是否应启动完成,例如数据库
在执行
pm2 unstartup systemd
之前,即使已经pm2 delete app,重启后依然会启动服务。
注:自动启动适用于稳定代码版本,如果代码发生变动,需要重新save、startup,否则pm2启动可能报错:
path.js:1144
cwd = process.cwd();
^
Error: ENOENT: no such file or directory, uv_cwd
at Error (native)
at Object.resolve (path.js:1144:25)
at Function.Module._resolveLookupPaths (module.js:361:17)
at Function.Module._resolveFilename (module.js:431:31)
at Function.Module._load (module.js:388:25)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at Object. (/usr/lib/node_modules/pm2/lib/ProcessContainer.js:12:15)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)