日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用pm2启动node文件_PM2 是什么

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用pm2启动node文件_PM2 是什么 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

pm2是什么

特點(diǎn)

示例說(shuō)明

配置文件

常用命令

背景

由于需要在容器云新增一個(gè)測(cè)試環(huán)境,改了代碼相關(guān)的配置后,進(jìn)行部署。發(fā)現(xiàn)服務(wù)一直啟動(dòng)不了。在和運(yùn)維一起排查問(wèn)題,他看到pm2的一些信息, 問(wèn)我pm2是不是阻塞了,并不是很清楚pm2是什么。就初步學(xué)習(xí)了一下,進(jìn)行記錄。

PM2是什么

Precess Manager 2

PM2是一個(gè)進(jìn)程管理工具,維護(hù)一個(gè)進(jìn)程列表,可以用來(lái)管理正在用行的進(jìn)程,實(shí)時(shí)查看日志,性能監(jiān)控等功能

特點(diǎn)

  • 日志管理 (已使用)
  • 支持監(jiān)聽(tīng)重啟
  • 支持部署工作流
  • 支持集群模式
  • 支持性能監(jiān)控
  • 支持pm2 開(kāi)發(fā)

示例說(shuō)明

  • 首先 npm init 新建一個(gè)node項(xiàng)目

  • 全局安裝pm2 ?(npm install pm2 -g), 如果已經(jīng)安裝過(guò),則不需要再次操作

  • 在這個(gè)項(xiàng)目里新建index.js, (創(chuàng)建一個(gè)http服務(wù)器)

  • 執(zhí)行命令 pm2 ecosystem, 默認(rèn)會(huì)生成pm2的配置文件)( ecosystem.config.js)

  • 在配置文件里進(jìn)行關(guān)于應(yīng)用的各種配置

    ![屏幕快照 2020-08-26 19.35.23](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 19.35.23.png)

  • 配置文件

  • 執(zhí)行命令 pm2 ecosystem, 默認(rèn)會(huì)生成 ecosystem.config.js ?(和package.json放在一個(gè)根目錄下)

  • 生成文件內(nèi)容如下

    module.exports?=?{
    ??apps?:?[
    ????{
    ??????script:?'index.js',
    ??????watch:?'.'
    ????},?
    ????{
    ??????script:?'./service-worker/',
    ??????watch:?['./service-worker']
    ????}
    ??],

    ??deploy?:?{
    ????production?:?{
    ??????user?:?'SSH_USERNAME',
    ??????host?:?'SSH_HOSTMACHINE',
    ??????ref??:?'origin/master',
    ??????repo?:?'GIT_REPOSITORY',
    ??????path?:?'DESTINATION_PATH',
    ??????'pre-deploy-local':?'',
    ??????'post-deploy'?:?'npm?install?&&?pm2?reload?ecosystem.config.js?--env?production',
    ??????'pre-setup':?''
    ????}
    ??}
    };

    • apps 是一個(gè)數(shù)組, 每一項(xiàng)數(shù)組成員對(duì)應(yīng)一個(gè)pm2中的應(yīng)用

    對(duì)配置文件詳解

    配置名含義
    appsjson結(jié)構(gòu),是一個(gè)數(shù)組,里面每一項(xiàng)是一個(gè)pm2的應(yīng)用
    name應(yīng)用程序名稱
    cwd應(yīng)用程序所在目錄
    script應(yīng)用程序啟動(dòng)文件所在目錄
    exec_mode應(yīng)用啟動(dòng)模式,默認(rèn)是fork, 可設(shè)置為 cluster集群
    instances應(yīng)用啟動(dòng)實(shí)例個(gè)數(shù),僅在cluster模式有效
    max_memory_restart最大內(nèi)存限制數(shù), 超出自動(dòng)重啟
    log_date_format日志文件格式
    error_file錯(cuò)誤日志文件路徑
    out_file正常日志文件路徑
    merge_logs設(shè)置追加日志而不是新建日志
    autorestart是否自動(dòng)重啟, true/false
    watch是否啟用監(jiān)控模式,默認(rèn)是false。如果設(shè)置成true,當(dāng)應(yīng)用程序變動(dòng)時(shí),pm2會(huì)自動(dòng)重載
    ignore_watch不用監(jiān)聽(tīng)的文件,例如node_modules
    restart_delay延時(shí)重啟時(shí)間
    env生產(chǎn)環(huán)境變量
    env_dev開(kāi)發(fā)環(huán)境變量
    env_test測(cè)試環(huán)境變量
    min_uptime如果應(yīng)用程序在這個(gè)時(shí)間退出,pm2會(huì)認(rèn)為程序異常退出,此時(shí)觸發(fā)重啟max_restarts設(shè)置數(shù)量
    max-restarts異常時(shí)重啟次數(shù)

    示例app進(jìn)行配置如下:

    module.exports?=?{
    ??apps?:?[
    ????{
    ??????name:?'xiaoyu_node_test',???//名稱
    ??????script:?'index.js',???//程序入口
    ??????watch:?'.',??//?需要監(jiān)控的目錄
    ??????error_file:?'/home/logs/err.log',??//錯(cuò)誤日志文件
    ??????out_file:?'/home/logs/info.log',??//?正常日志文件
    ??????log_date_format:?'YYYY-MM-DD?HH:mm:ss',??//?指定日志文件的時(shí)間格式
    ??????autorestart:?true,???//?發(fā)生異常是否自動(dòng)重啟,?true重啟,?false不重啟
    ??????env:?{
    ????????NODE_ENV:?'production',??//環(huán)境參數(shù),當(dāng)前指定為生產(chǎn)環(huán)境?process.env.NODE_ENV
    ????????REMOTE_ADDR:?''???//?process.env.REMOTE_ADDR
    ??????},
    ??????env_dev:?{
    ????????NODE_ENV:?'development',??//環(huán)境參數(shù),當(dāng)前指定為開(kāi)發(fā)環(huán)境?pm2?start?app.js?--env_dev
    ????????REMOTE_ADDR:?''???//?process.env.REMOTE_ADDR
    ??????}

    ????},?
    ????{
    ??????script:?'./service-worker/',
    ??????watch:?['./service-worker']
    ????}
    ??],

    ??deploy?:?{
    ????production?:?{
    ??????user?:?'SSH_USERNAME',
    ??????host?:?'SSH_HOSTMACHINE',
    ??????ref??:?'origin/master',
    ??????repo?:?'GIT_REPOSITORY',
    ??????path?:?'DESTINATION_PATH',
    ??????'pre-deploy-local':?'',
    ??????'post-deploy'?:?'npm?install?&&?pm2?reload?ecosystem.config.js?--env?production',
    ??????'pre-setup':?''
    ????}
    ??}
    };

    常用命令

  • 安裝pm2

    npm?install?pm2?-g???????????//?要進(jìn)行全局安裝
  • 啟動(dòng)進(jìn)程(應(yīng)用)

    • 1.直接啟動(dòng)對(duì)應(yīng)的js文件

      pm2?start?index.js

      ![屏幕快照 2020-08-26 11.07.44](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 11.07.44.png)

    • 2.啟動(dòng)pm2的配置文件

      pm2?start?ecosystem.config.js

      ![屏幕快照 2020-08-26 11.08.14](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 11.08.14.png)

    重啟

    pm2?restart?ecosystem.config.js

    查看日志

    pm2?logs

    ![屏幕快照 2020-08-26 11.11.14](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 11.11.14.png)

    可以實(shí)時(shí)展示日志,而且會(huì)在自己配置文件中指定的路徑生成日志文件

    查看進(jìn)程 以及 查看進(jìn)程詳情

    pm2?list

    ![屏幕快照 2020-08-26 11.13.08](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 11.13.08.png)

    具體的查看某一個(gè)進(jìn)程詳情,例如查看id=4的進(jìn)程

    pm2?describe?4?????//id號(hào)

    ![屏幕快照 2020-08-26 11.16.04](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 11.16.04.png)

    查看cpu和內(nèi)存資源占用等一些性能指標(biāo)

    pm2?monit

    ![屏幕快照 2020-08-26 18.17.34](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 18.17.34.png)

    ![屏幕快照 2020-08-26 18.17.42](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 18.17.42.png)

    *https://keymetrics.io/這個(gè)網(wǎng)址,經(jīng)過(guò)一些設(shè)置,可以可視化看一些指標(biāo)。由于打不開(kāi)這個(gè)頁(yè)面, 沒(méi)有進(jìn)行實(shí)際測(cè)試

    停止進(jìn)程

    pm2?stop?0????????????????//?0是id??id|name|namespace|all|json|stdin

    ![屏幕快照 2020-08-26 18.22.58](/Users/jiaxiaoyu/Desktop/屏幕快照 2020-08-26 18.22.58.png)

    status 已經(jīng)變成 stoped

    刪除進(jìn)程

    pm2?delete?0.????????//id號(hào)

    上述的列表里就會(huì)刪掉這一條

    開(kāi)機(jī)自啟動(dòng)

    • pm2 start 配置文件

    • pm2 save ? ? ?// 保存現(xiàn)有列表數(shù)據(jù)

    • pm2 startup ? //設(shè)置開(kāi)機(jī)啟動(dòng)

    結(jié)尾

    Pm2 能做的還有很多,等待挖掘...

    總結(jié)

    以上是生活随笔為你收集整理的使用pm2启动node文件_PM2 是什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 波多一区二区 | 日本高清不卡码 | 欧美三级在线播放 | av在线收看 | 免费成人高清在线视频 | 亚洲操图 | 性色av浪潮 | 最近最新中文字幕 | 一区二区三区有限公司 | 无码人妻精品一区二区三区66 | 亚洲精品v日韩精品 | 在线观看中文字幕av | 久久久国产成人一区二区三区 | 成人国产精品免费观看 | www香蕉视频 | 日韩精品自拍偷拍 | 四川操bbb| 欧美一区二区最爽乱淫视频免费看 | 美女脱了裤子让男人捅 | 午夜a级片 | 久久婷婷五月国产色综合激情 | 亚洲国产中文在线 | 啪啪在线视频 | 爱涩av | 国产成人亚洲精品无码h在线 | 日韩精品一二三四区 | 爱久久视频 | 国产视频精品自拍 | 簧片av| 欧美高清在线 | 亚洲综人 | 成人午夜免费福利 | 亚洲情热 | 三年大片在线观看 | 亚洲 小说区 图片区 都市 | 一女双乳被两男吸视频 | 中文字幕人妻色偷偷久久 | 我和公激情中文字幕 | 91丝袜呻吟高潮美腿白嫩在线观看 | 三级精品视频 | 伊人伊人网 | 97伊人久久 | 青青视频免费观看 | 97se在线视频 | 黄色网址大全免费 | 成人18网站| 久久婷婷婷 | 顶级嫩模啪啪呻吟不断好爽 | 久久久久一区二区精码av少妇 | 亚洲一卡二卡三卡四卡 | 狠狠撸视频 | 亚洲AV成人午夜无码精品久久 | 国产肥熟| www.蜜桃av| 男男一级淫片免费播放 | 美女扒开内裤让男人桶 | 男生把女生困困的视频 | 网友自拍一区 | 少妇大叫太粗太大爽一区二区 | 中文字幕av免费在线观看 | 亚洲aaa视频 | 无码人妻精品一区二区蜜桃网站 | 久久精品国产亚洲av久 | 黑人vs日本人ⅹxxxhd | 好吊色这里只有精品 | 中文字幕免费在线看线人动作大片 | 久久久久成人精品无码中文字幕 | 色久av| 国产尤物在线观看 | 亚洲午夜视频在线观看 | 69精品人人人人 | 亚洲在线精品视频 | 高清亚洲 | av噜噜在线观看 | 成人依依| 九色91popny蝌蚪新疆 | 久久尤物 | 黄色网址在线播放 | 国产乱视频 | 久久久在线视频 | 秋葵视频在线 | 亚洲综合国产 | 影音先锋国产精品 | 久久大胆视频 | 韩国日本美国免费毛片 | 中文字幕亚洲乱码熟女1区2区 | 国产专区在线播放 | 日韩在线观看一区 | 国产一区二区小视频 | 欧美偷拍精品 | 苏晴忘穿内裤坐公交车被揉到视频 | 玖玖爱国产 | 在线成人看片 | 国产精品视频看看 | 波多野结衣在线视频播放 | 羞羞的视频网站 | 一本之道高清无码视频 | 四虎永久免费 | av免费观看不卡 |