如何使用PM2将Node.js应用以守护进程方式启动?
嘿,作为Node.js新手,刚接触PM2踩点小坑太正常啦~我来帮你快速搞定这个问题!
你之所以用pm2 node start启动失败,核心原因是PM2的命令格式用错了——PM2本身就是专门管理Node.js进程的工具,不需要在命令里额外加node,而且它需要直接指定入口文件或者正确的启动脚本命令。
下面分两种常见情况给你对应解决方案:
情况1:你的入口文件就是start.js
你说执行node start能启动应用,说明当前目录下应该有个start.js文件(node命令后面跟的是文件名,这里省略了.js后缀)。那用PM2启动的正确命令是:
pm2 start start.js
如果想给你的应用起个好记的名字(方便后续管理),可以加--name参数:
pm2 start start.js --name "我的Node应用"
启动后,用pm2 list就能查看所有运行的PM2进程,确认你的应用是否正常跑起来了。
情况2:node start其实是执行npm的start脚本
如果你的package.json里配置了类似这样的启动脚本:
{ "scripts": { "start": "node start.js" } }
那你习惯用的node start可能是npm start的简化说法?没关系,PM2也能直接执行npm的start脚本,命令是:
pm2 start npm -- run start
这里的--是用来分隔PM2参数和npm参数的,确保命令能正确传递。
实用的PM2后续管理命令
启动成功后,这些命令能帮你轻松管理进程:
- 查看所有进程状态:
pm2 list - 查看应用实时日志:
pm2 logs <应用名/进程ID> - 重启应用:
pm2 restart <应用名/进程ID> - 停止应用:
pm2 stop <应用名/进程ID> - 设置开机自启:
pm2 startup(执行后按照终端提示的命令完成配置即可)
内容的提问来源于stack exchange,提问作者Babr
相关产品推荐
相关产品推荐

