pm2 设置开启自启 node.js应用开机启动相关命令

运行Node.js服务时,服务器重启后服务需手动启动,使用shell脚本启动不利于管理。可通过PM2管理,具体步骤为全局安装PM2,找到项目目录启动,保存当前列表,设置开机启动,还介绍了相关命令及CentOS 7查看服务状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行node.js服务的时候,如果服务器不小心或者因为其他原因重启了,服务不会跟着重启,需要手动运行服务,这样肯定是很不方便的,当然可以通过shell脚本进行启动,不过这样的不利于服务管理。可以通过pm2进行管理。

全局安装pm2

npm install pm2 -g

找到项目的目录,使用pm2进行启动

执行命令pm2 start 项目启动文件进行启动

[root@centos7 server]# pm2 start app.js
[PM2] Starting /www/server/yapi/vendors/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem      │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ app      │ 0  │ 1.7.1   │ fork │ 21501 │ online │ 0       │ 0s     │ 0%  │ 2.9 MB   │ root │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
[root@centos7 server]# 
保存当前列表

执行命令pm2 save保存现有列表数据,开机后会自动加载已保存的应用列表进行启动

[root@centos7 server]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
[root@centos7 server]# 
设置开机启动

执行命令pm2 startup进行设置开机启动
输出以下信息就表明已经设置成功

[root@centos7 server]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/src/node-v10.15.3-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/local/src/node-v10.15.3-linux-x64/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd
[root@centos7 server]#

centos7 可以通过systemctl查看服务状态

[root@centos7 server]# systemctl status pm2-root
● pm2-root.service - PM2 process manager
   Loaded: loaded (/etc/systemd/system/pm2-root.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://pm2.keymetrics.io/
[root@centos7 server]# 
相关命令
# app指pm2创建的项目名
pm2 show app # 显示应用程序的所有信息
pm2 -h # 查看pm2帮助信息,显示命令用法
pm2 start app.js -n project # 将应用设置别名为project
pm2 list # 显示所有项目
pm2 stop app # 停止应用服务
pm2 restart app # 重启应用服务
pm2 delete app # 在进程中删除应用
pm2 status # 查看状态
pm2 monit # 查看占用的CPU和内存
宝塔面板是一个非常流行的服务器管理工具,它可以帮助您轻松地管理和部署Web应用程序、数据库以及其他服务。通过图形化界面操作,简化了Linux系统上各种复杂配置的任务。 对于使用Node.js构建的应用程序,在宝塔面板中集成PM2可以更高效稳定地运行您的应用PM2 是一个进程管理器,专门用于Node.js 应用程序,能够保证应用程序持续在线,并提供负载均衡等功能。 针对你提到的具体情况——即`node index.js`作为项目的启动命令: 1. **安装 PM2**:首先需要全局安装PM2。如果你还没有安装过的话,可以在SSH终端里输入以下命令进行安装: ```bash npm install pm2 -g ``` 2. **设置开机**:为了确保重启服务器之后 Node 应用仍然保持运行状态,还需要让 PM2 配合系统的初始化脚本工作。 ```bash pm2 startup systemd ``` 3. **保存当前所有正在使用的 App 列表到 pm2JSON 文件中以便恢复** ```bash pm2 save ``` 4. **通过 PM2 启动你的项目**:现在你可以用 PM2 来代替直接使用 `node` 命令启动你的应用了,比如下面这个例子会将应用的日志信息输出并记录下来: ```bash cd /path/to/your/project # 进入项目目录 pm2 start index.js --name "my-app" ``` 5. **查看已启动的服务列表以及状态监控** 只需简单键入 `pm2 list` 或者 `pm2 monit` 就能获取相关信息。 6. **日志管理**: 如果你想看具体的错误或者访问日志,可以用这条命令打开实时滚动显示模式: ```bash pm2 logs my-app ``` 以上步骤完成后,你应该已经成功设置了宝塔面板结合 PM2 来托管基于 Node.js 构建的 Web 应用了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_czbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值