前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PM2 - 进程管理工具

PM2 - 进程管理工具

作者头像
崔哥
发布2023-10-23 10:44:18
2450
发布2023-10-23 10:44:18
举报
文章被收录于专栏:崔哥的专栏崔哥的专栏

PM2 是具有内置负载均衡器的 Node.js 应用程序的生产过程管理器。它允许您使应用程序永远保持活动状态,在不停机的情况下重新加载它们,并促进常见的系统管理任务。

全局安装pm2

代码语言:javascript
复制
npm install pm2 -g

启动监听模式

自动监听文件变化

代码语言:javascript
复制
pm2 start app.js --watch

常用命令

代码语言:javascript
复制
pm2 start app.js # 启动
pm2 stop app.js # 停止
pm2 logs # 日志
pm2 stop all # 停止全部
pm2 delete all # 杀死全部进程
pm2 startup # 开机自启
pm2 update pm2  # 更新 pm2
pm2 serve ./dist 9090   # 将目录dist作为静态服务器根目录,端口为9090
pm2 list   # 查看启动列表
pm2 monit   # 查看每个应用程序占用情况
pm2 ecosystem # 生成一个示例JSON配置文件
pm2 init

管理laravel队列

todo:停止脚本待测试

pm2和php安装在一个环境中

都安装在一个宿主机中,或都安装在一个容器中

代码语言:javascript
复制
cuiwei@weideMacBook-Pro laravel-demo % cat process.yml 
apps:
  - name: "laravel:queue:work" # 这里自己命名
    script: artisan #指定脚本为 artisan 脚本
    watch: false # 不监听文件变化
    interpreter: php # 脚本为php,如果你的 php 不在全局变量可以指定绝对路径脚本
    args: "queue:work --tries=3" # artisan 命令和参数
    restart_delay: 3000 # 进程中断三秒后重启
    error_file: ./storage/logs/queue.error.log # 错误日志
    out_file: ./storage/logs/queue.out.log # 输出日志
    pid_file: ./storage/app/queue.pid # pid 文件路径

宿主机安装pm2,然后控制容器内的php

代码语言:javascript
复制
cuiwei@weideMacBook-Pro laravel-demo % cat process2.yml
apps:
  - name: "laravel:queue:work" # 这里自己命名
    script: docker_artisan.sh #指定脚本为 artisan 脚本
    watch: false # 不监听文件变化
    interpreter: bash # 使用 Bash 解释器来执行命令
    args: "" # artisan 命令和参数
    restart_delay: 3000 # 进程中断三秒后重启
    error_file: ./storage/logs/queue.error.log # 错误日志
    out_file: ./storage/logs/queue.out.log # 输出日志
    pid_file: ./storage/app/queue.pid # pid 文件路径
    pre-stop: docker_artisan_clear.sh # 停止脚本
代码语言:javascript
复制
cuiwei@weideMacBook-Pro laravel-demo % cat docker_artisan.sh 
#!/usr/bin/env bash
docker exec -u www-data server-docker-php-fpm-1 /var/www/laravel-demo/artisan queue:work --tries=3
代码语言:javascript
复制
cuiwei@weideMacBook-Pro koa-demo % pm2 init simple   

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__

                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/

                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/Users/cuiwei/.pm2
[PM2] PM2 Successfully daemonized
File /Users/cuiwei/PhpstormProjects/koa-demo/ecosystem.config.js generated

参考

https://github.com/Unitech/pm2

https://blog.csdn.net/qq_41008918/article/details/118439088

https://pm2.fenxianglu.cn/docs/start

https://www.cnblogs.com/sweetsunnyflower/p/11466349.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全局安装pm2
  • 启动监听模式
  • 常用命令
  • 管理laravel队列
    • pm2和php安装在一个环境中
      • 宿主机安装pm2,然后控制容器内的php
      • 参考
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档