手机版

塔尔(PM2)上的nodejs部署模式

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

如果直接通过节点app启动,报错的话可能直接停在整个操作,主管觉得只是作为开发环境。在线查找pm2。目前,nodejs项目最常见的在线部署似乎是Forever和PM2。

使用场合:

Supervisor用于开发环境。Forever管理多个站点,每个站点几乎没有流量,不需要监控。开发环境使用Nodemon,修改会自动重启。Pm2网站访问量大,需要完整的监控界面。PM2 :的主要特点

内置负载均衡(使用Node集群集群模块)在后台运行0秒停止重装,我的理解大致是维护升级的时候不用停止。带有Ubuntu和CentOS的启动脚本可以停止不稳定的进程(避免无限循环)。控制台检测提供HTTP API远程控制和实时接口API (Nodejs模块,允许与PM2进程管理器交互)。1.最常用的是nohup,它实际上是在后台执行进程,并在最后添加一个。

[[email protected]~]$ nohup node/home/周杰/ops/app.js [1] 31490nohup3360签名输入并附加输出到` nohup.out ',即此时程序已经启动,可以直接访问,原程序的标准输出自动重定向到当前目录下的nohup.out文件。退出账户/关闭终端后,该命令可以继续运行相应的流程。Nohup表示不挂断。

这个命令的一般形式是:nohup命令

这种不靠谱的样子,往往无声无息的过程挂在后台

2.使用屏幕打开另一个屏幕。这样就可以直接在屏幕上看到程序的运行状态

给应用程序一个屏幕,比如screen -r ops,然后用npm start启动它。

退出后台:ctrl a,然后按d,但是不能直接ctrl c,否则会退出

这种方法不专业,呵呵,但是在生产环境下操作方便。

这实际上是在period,package.json:

脚本' : { ' start ' : ' every app . js ',' test': 'supervisor app.js' },3,PM2

要使用它,请先安装它,然后使用根帐户和全局模式安装它:

Npm install -g pm2用它来启动程序(可以直接在当前目录下启动,PM2 startapp . js-namuops)

[[email protected]uops]$ pm2 start app . js[PM2]产卵PM2守护进程[PM2]成功[PM2]进程app . jslaunchedapp名称 id 模式 PID 状态重新启动正常运行时间内存在看app0fork308onl line00s21.879 MB禁用使用` pm2 info id例如,当执行pm2重启时,上面重启的列变为1,可以显示程序已经运行了多长时间,占用了多少内存。真的很棒!

终止程序也很简单:pm2停止

列出所有以pm2: pm2列表开始的程序

[[电子邮件保护]uops]$pm2list应用程序名称 id 模式 PID 状态重启正常运行时间内存观看应用程序 0 分叉 984 在线 1 3s 64.141 MB 禁用使用` pm2信息id |名称`获取有关某个应用程序的更多详细信息查看启动程序的详细信息:pm2描述编号

[[电子邮件保护]uops]$ PM2 desc 0描述带有pid 0的进程-名称app状态联机名称appid0路径首页/周杰/uops/app。jsargsexec CWDhome/周杰/uops >错误日志路径首页/周杰/.PM2/日志/应用程序-错误-0。注销日志路径/通过pm2列表命令来观察所有运行的进程以及它们的状态已经足够好了。但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:pm2 monit

可以得到进程(以及集群)的中央处理器的使用率和内存占用(ctrl+c退出)

实时集中原木处理:pm2日志

强大API: pm2 web

你想要监控所有被PM2管理的进程,而且同时还想监控运行这些进程的机器的状态,

[[电子邮件保护]uops]$ PM2网站在端口9615上启动网界面[PM2]进程/usr/local/node/lib/node _ modules/PM2/lib/httpinterface。射流研究…启动了[pm2]processlaunchedapp名称 id 模式 PID 状态已重启正常运行时间内存观看app0fork984在线 1 9m 启动程序的时候顺便在浏览器访问:http://localhost:9615

擦,我眼睛被亮瞎了,这么炫酷,竟然把部署的服务器的信息和程序的信息都显示出来了:

这东西对程序运行的监控页面的开发实在是太有帮助了,呵呵~~

监控:pm2 monit实时集中原木处理: pm2 logsAPI:pm2 web(端口:9615 )

常用命令总结:

$ pm2日志显示所有进程日志$ pm2全部停止停止所有进程$ pm2全部重启重启所有进程$ pm2重新加载所有0秒停机重载进程(用于网络化的进程)$ pm2停止0停止指定的进程$ pm2重启0重启指定的进程$ pm2启动产生初始化脚本保持进程活着$ pm2 web运行健壮的计算机应用程序接口端点(http://localhost:9615) $ pm2删除0杀死指定的进程$ pm2全部删除杀死全部进程运行进程的不同方式:

$ pm2 start app.js -i max根据有效中央处理器数目启动最大进程数目$ pm2 start app.js -i 3启动3个进程$ pm2 start app.js -x用叉模式启动app.js而不是使用集群$ PM2开始应用。js-x-a-23用叉模式启动app.js并且传递参数(-一款23美元的PM2 start应用。js-名称服务器1启动一个进程并把它命名为serverone $ pm2停止serverone停止serverone进程$ pm2 start app.json启动进程,在app.json里设置选项$ PM2开始应用。js-I max-a23在-之后给app.js传递参数$ PM2开始应用。最大误差。注销。原木启动并生成一个配置文件配置pm2启动文件

在项目根目录添加一个processes.json:

内容如下:

{ ' apps ' :[{ ' name ' : ' my work ',' CWD ' : '/SRV/node-app/current ',' script': 'bin/www ',' log _ date _ format ' : ' YYYY-MM-DD hh :MM Z ',' error _ file ' : '/var/log/node-app/node-app。stderr。日志',' out _ file ' 3: '日志/节点-app。性病.说明:

Apps:json结构,Apps是一个数组,每个数组成员对应一个运行在pm2中的应用。名称:应用程序名称cwd:应用程序目录脚本:应用程序脚本路径Log _ Date _ Format : Error _ File :自定义应用程序的错误日志文件out_file:自定义应用程序日志文件pid_file:定义了应用程序的pid文件instance :min _ uptime :的最小运行时间,这里的设置是60s,也就是说如果应用程序在60s内退出,pm2会认为应用程序退出此时,重启被触发。max _ Reuters set number max _ restart s 3360设置应用程序异常退出重启的次数。默认情况下,cron_restart:会定期启动15次(从0开始计数),以解决重启可以解决的问题。watch:是否启用监控模式默认为假。如果设置为true,当应用程序改变时,pm2将自动重新加载。您也可以在这里设置要监控的文件。merge _ logs : exec _ interpreter :应用程序的脚本类型,这里使用的shell默认是nodexec _ mode3360应用程序启动模式,这里设置的是cluster_mode。默认情况下,fork autorestart:在应用程序崩溃或退出时启用/禁用自动重新启动vizion:启用/禁用vizion功能(版本控制),该功能可以通过PM2startprocesses.json启动。

您也可以在package.json中编写命令.以下:

使用npm运行启动来启动。

关于pm2远程部署到多台机器,请参考http://pm2.keymetrics.io/docs/usage/deployment/

官方网站:http://pm2.keymetrics.io/docs/usage/quick-start/

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:塔尔(PM2)上的nodejs部署模式是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。