启动

  • 启动 静态文件 | pm2 serve . 9001 --name test -- watch | | —- |

  • 建立pm2.json 内容如下

    1. {
    2. "name": "my-server",
    3. "script": "/usr/bin/java",
    4. "args": [
    5. "-jar",
    6. "server.jar"
    7. ],
    8. "exec_interpreter": "",
    9. "exec_mode": "fork"
    10. }

    说明如下:

  • name 进程名称(显示在pm2 list命令中)

  • script 执行进程名称,如果需要执行PHP脚本则填写php解释器的路径,本文为java
  • args 传给执行进程的参数,多个参数以数组单元分割
  • exec_interpreter NodeJs解析器,本文不适用
  • exec_mode 执行模式[cluster|fork]这个针对NodeJs应用的配置,非NodeJs应用统一fork

    配置文件完成后,使用

    1. pm2 start pm2.json

    日志文件

  • 日志路径在~/.pm2/logsstdoutstderr被分开存放,程序中的所有stdoutstderr都被收集方便查错。

    开机直接启动pm2 保存好的任务

  • 使用pm2 start (启动服务)

  • 执行pm2 save (保存当前已经启动了的服务)
  • 执行pm2 startup (设置开机自启的配置)
    • 执行pm2 startup以后会得到以下提示 设置环境变量 ```java [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=/home/hadoop/hadoop/bin:/home/hadoop/hadoop/sbin:/root/nvm/versions/node/v10.16.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home/hbase/hbase-2.2.6/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=/root/nvm/versions/node/v10.16.3/lib/node_modules/pm2/bin/pm2 resurrect ExecReload=/root/nvm/versions/node/v10.16.3/lib/node_modules/pm2/bin/pm2 reload all ExecStop=/root/nvm/versions/node/v10.16.3/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

  1. - 执行 systemctl enable pm2-root
  2. <a name="articleContentId"></a>
  3. # pm2启动npm run dev和开机自启
  4. <a name="bcy8d"></a>
  5. ### 安装
  6. ```javascript
  7. npm install -g pm2

管理命令

  1. $ pm2 start app.js
  2. $ pm2 start bashscript.sh
  3. $ pm2 start python-app.py --watch
  4. # 启动npm run dev
  5. $ pm2 start npm --watch -- run dev
  6. pm2 [list|ls|status] # 显示状态
  7. pm2 logs # 查看所有进程日志
  8. pm2 stop all # 停止所有进程
  9. pm2 restart all # 重启所有进程
  10. pm2 stop 0 # 停止进程
  11. pm2 restart 0 # 重启进程
  12. pm2 delete 0 # 删除进程
  13. # 添加额外参数到脚本
  14. -- arg1 arg2 arg3
  15. # eg: pm2启动 npm run start
  16. pm2 start npm --name www -- run start

日志查看

  1. /root/.pm2/logs/

开机自启

  1. sudo pm2 start xxxx #启动服务
  2. sudo pm2 save # 保存服务
  3. sudo pm2 startup # 把已启动服务加到systemd
  4. sudo pm2 unstartup systemd # 删除自动启动服务