1. PM2

npm install -g pm2

最简单的启用一个应用:  pm2 start app.js

停止:pm2 stop app_name|app_id

删除:pm2 delete app_name|app_id

重启:pm2 restart app_name|app_id

停止所有:pm2 stop all

查看所有的进程:pm2 list

查看所有的进程状态:pm2 status

查看某一个进程的信息:pm2 describe app_name|app_id
参数说明


--watch:监听应用目录源码的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件

-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目,可以弥补node.js缺陷

--ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts"


-n --name:应用的名称。查看应用信息的时候可以用到

-o --output <path>:标准输出日志文件的路径,有默认路径

-e --error <path>:错误输出日志文件的路径,有默认路径

--interpreter <interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用

-- 持久化 https://pm2.keymetrics.io/docs/usage/startup/
作者:LeavesLife
链接:https://www.jianshu.com/p/f640450bd120
来源:简书

1.1. .sh 运行

#!/usr/bin/env bash

if [ -z $PACKAGE_PM2_PATH ];then
    echo "ENV \$PACKAGE_PM2_PATH is NULL"
    exit 1
fi

if [ -z $PACKAGE_PHP_PATH ];then
    echo "ENV \$PACKAGE_PHP_PATH is NULL"
    exit 2
fi

if [ -z $XXX_PACKAGE_PATH ];then
    echo "ENV \$XXX_PACKAGE_PATH is NULL"
    exit 3
else
    echo "...Start...";
            $PACKAGE_PM2_PATH start ./xxx.sh --name xxxx -i 3 ## -i 3 启动3个进程
    exit 0
fi

1.2. laravel 队列消耗任务实例

$PACKAGE_PHP_PATH "$XXX_PACKAGE_PATH"artisan  queue:work --queue=default --daemon --tries=2 --sleep=0

1.3. www 运行

alias wwwpm2='sudo -Hu www /usr/local/bin/pm2'
// 不要用相对路径,用绝对路径
// www 权限设置 .bash_profile >> source
PACKAGE_PM2_PATH=/usr/local/bin/pm2
PACKAGE_PHP_PATH=/usr/local/php/bin/php
XXX_PACKAGE_PATH=/****

results matching ""

    No results matching ""