运维开发网

在RHEL/CentOS 8系统上安装和使用PM2的方法

运维开发网 https://www.qedev.com 2021-01-21 11:24 出处:云网牛站 作者:戴进
本文介绍在RHEL/CentOS 8系统上安装和使用PM2的方法,它是Node.js应用程序的开源生产流程管理器,具有内置负载均衡器。使用PM2,您可以永久保持应用程序的活动,重新加载它们而不会导

本文介绍在RHEL/CentOS 8系统上安装和使用PM2的方法,它是Node.js应用程序的开源生产流程管理器,具有内置负载均衡器。使用PM2,您可以永久保持应用程序的活动,重新加载它们而不会导致停机并轻松执行其他Node.js常见的系统管理任务。PM2支持从Node.js 4.X开始的所有主要版本的Node.j,此外,它适用于Linux、macOS和Windows操作系统。

 

一、安装Nodejs和NPM

在安装PM2之前,我们需要安装Node.js和NPM,RHEL/CentOS自带Node.js 10和8:

$ sudo yum module list | grep nodejs

nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime

nodejs 8 development, minimal, s2i, default [d] Javascript runtime

安装的默认版本是Nodejs 10,但你可以指定要安装的Node.js的版本:

sudo yum module install nodejs:10

参考:在RHEL 8系统中安装Node.js 10的方法。

要是使用Node.js 8,运行:

sudo yum module install nodejs:8

等待安装完成然后检查版本:

$ node --version

v10.11.0

你可能还需要安装用于构建节点软件的开发工具:

sudo yum install -y gcc-c++ make

 

二、安装PM2

安装Node.js后,继续安装PM2进程管理器,选项-g用于全局安装:

sudo npm i -g pm2

安装输出信息如下:

/usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2

/usr/bin/pm2-dev -> /usr/lib/node_modules/pm2/bin/pm2-dev

/usr/bin/pm2-docker -> /usr/lib/node_modules/pm2/bin/pm2-docker

/usr/bin/pm2-runtime -> /usr/lib/node_modules/pm2/bin/pm2-runtime

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/pm2/node_modules/fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"Linux","arch":"x64"})

[email protected]

updated 1 package in 16.992s

应将PM2安装到/usr/bin路径:

$ which pm2

/usr/bin/pm2

 

三、创建一个测试Node.js应用程序

创建一个项目文件夹:

mkdir hello-world-nodejs

切换到Project文件夹并使用以下数据创建app.js文件:

cd hello-world-nodejs

vi app.js

增加:

const http = require('http');

http.createServer(function(request, response) {

response.writeHead(200, {'Content-Type': 'text/plain'});

response.end("Hello, World!\n");

}).listen(process.env.PORT);

console.log('App is running...');

 

四、在RHEL/CentOS 8上使用PM2

1、使用PM2启动应用程序:

$ pm2 start app.js

在RHEL/CentOS 8系统上安装和使用PM2的方法

2、列出运行应用程序:

$ pm2 list

在RHEL/CentOS 8系统上安装和使用PM2的方法

要监视目标进程,请使用:

$ sudo pm2 monitor

3、查看Node.js进程信息

首先获取进程ID:

$ sudo pm2 list

然后使用进程ID来提取更多信息:

$ sudo pm2 show <ProcessID>

见下面的例子:

在RHEL/CentOS 8系统上安装和使用PM2的方法

4、将应用程序设置为启动时启动

使用pm2启动命令:

$ sudo pm2 startup

[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=/sbin:/bin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

Environment=PM2_HOME=/root/.pm2

PIDFile=/root/.pm2/pm2.pid

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect

ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all

ExecStop=/usr/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…

Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service.

[PM2] [v] Command successfully executed.

+---------------------------------------+

[PM2] Freeze a process list on reboot via:

$ pm2 save

[PM2] Remove init script via:

$ pm2 unstartup systemd

要禁用运行:

sudo pm2 unstartup

5、查看应用程序日志:

$ sudo pm2 logs

在RHEL/CentOS 8系统上安装和使用PM2的方法

6、更新PM2

使用pm2 update命令来获取PM2更新:

sudo pm2 update

在RHEL/CentOS 8系统上安装和使用PM2的方法

至此,使用PM2的基本方法讲完了。

 

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号