背景
过去每次想本地运行一个简单的脚本服务,让它后台运行。常规的使用nohup挂起后台运行,但是遇到很坑的事情就是重启机器的时候服务就没有了,或者是其他的异常原因导致服务悄无声息的挂掉了。
后面和前端聊天的过程中发现了pm2这个强大的进程管理工具,对于node的服务管理页面可视化,专业性,稳定性和便捷性都很强大。我在深入了解发现它竟然可以运行除了node之前的服务,像python的也可以。
安装
// 全局安装pm2,依赖node和npm
npm install -g pm2
常用命令
1、启动服务
进入项目目录执行以下语句
pm2 start npm -- start
可跟参数:
--watch:监听应用目录的变化,一旦发生变化,自动重启
-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。
--ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts""
-n --name <app_name>:启动一个进程并把它命名为自定义的进程名称
-o --output <path>:标准输出日志文件的路径。
-e --error <path>:错误输出日志文件的路径。其中一个值得分享的功能,指定python解释器来运行服务
pm2 start --name demo /home/xxx/tplatform/tools/scripts/error_monitor.py --interpreter=/usr/bin/python3 --log /home/xxx/tplatform/tools/scripts/logs/monitor.log2、列出所有进程/应用
pm2 list
3、停止
pm2 stop app_name|app_id
pm2 stop all
4、重启
pm2 restart app_name|app_id
pm2 restart all
5、删除进程
pm2 delete app_name|app_id
pm 2 delete all
6 、日志查看
pm2 logs
7、监控(monitor)-查看进程的资源消耗情况
pm2 monit
8、保存当前list列表的配置
pm2 save
9、开机自动启动保存配置应用
pm2 startup
10、设置定时操作任务
pm2 restart myapp --cron-restart="0 3 * * *"
11、查看配置
pm2 show myapp