zoukankan      html  css  js  c++  java
  • Node之pm2

    最近在项目中使用了Node,在程序部署的时候直接使用命令:node app.js ,这样我们的程序就可以host起来了,但是只要dos窗口关掉之后node就关闭了,这使得我们很不方便,于是乎发现了pm2这个东东,这到底是个什么东东呢,请看下面介绍:

    pm2 是一个带有负载均衡功能的Node应用的进程管理器.
    当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。

    主要特性:

    内建负载均衡(使用Node cluster 集群模块)
    后台运行
    0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
    具有Ubuntu和CentOS 的启动脚本
    停止不稳定的进程(避免无限循环)
    控制台检测
    提供 HTTP API
    远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

    测试过Nodejs v0.11 v0.10 v0.8版本,兼容CoffeeScript,基于Linux 和MacOS.

    安装
    npm install -g pm2

    用法
    $ npm install pm2 -g # 命令行安装 pm2
    $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
                                    # 也可以把'max' 参数传递给 start
                                    # 正确的进程数目依赖于Cpu的核心数目
    $ pm2 start app.js --name my-api # 命名进程
    $ pm2 list # 显示所有进程状态
    $ pm2 monit # 监视所有进程
    $ pm2 logs # 显示所有进程日志
    $ pm2 stop all # 停止所有进程
    $ pm2 restart all # 重启所有进程
    $ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
    $ pm2 stop 0 # 停止指定的进程
    $ pm2 restart 0 # 重启指定的进程
    $ pm2 startup # 产生 init 脚本 保持进程活着
    $ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615)
    $ pm2 delete 0 # 杀死指定的进程
    $ pm2 delete all # 杀死全部进程

    运行进程的不同方式:
    $ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
    $ pm2 start app.js -i 3 # 启动3个进程
    $ pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster
    $ pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23)
    $ pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone
    $ pm2 stop serverone # 停止 serverone 进程
    $ pm2 start app.json # 启动进程, 在 app.json里设置选项
    $ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数
    $ pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件
    你也可以执行用其他语言编写的app ( fork 模式):
    $ pm2 start my-bash-script.sh -x --interpreter bash
    $ pm2 start my-python-script.py -x --interpreter python

    常用命令执行之后界面如下:

    pm2 start app.js

    重启:pm2 restart app.js

                    

    pm2 list
    列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常。
     


    pm2 monit
    监视每个node进程的CPU和内存的使用情况。
     
    顺便整理几个常用的dos命令:

    在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用.

    操作:操作分为两步:

    (1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,使用命令

    Netstat –ano|findstr “<端口号>”,如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。

     

    (2)查看该PID对应的进程名称。

       用命令查找,tasklist|findstr “<PID号>”

     

     然后找到进程号执行:taskkill /pid 1688 /F
     
     成功: 已终止 PID 为 1688 的进程。
     
  • 相关阅读:
    Centos7中在线/离线安装DockerCE最新版
    Centos7中离线安装DockerCE最新版
    Docker中部署Mysql5.7和DbAdmin的docker-compose.yml
    在三台Centos或Windows中部署三台Zookeeper集群配置
    Python爬虫指定关键词下载百度图片的角本
    JAVA基于图片相似性算法实现以图搜图样例
    Foxmail中配置O365邮箱和Hotmail邮箱
    .Net混淆工具和反混淆工具
    MyBatis中使用实体中使用枚举,数据库中使用数值
    Mybatis中使用集合、数组
  • 原文地址:https://www.cnblogs.com/Wolfmanlq/p/5960251.html
Copyright © 2011-2022 走看看