后台服务守护进程神器pm2介绍及使用_pm2 执行go命令-程序员宅基地

技术标签: node.js  linux  服务器  ssh  

前言

linux的后台服务程序需要在后台一直运行。如果通过ssh访问临时启动的,会话一结束就直接关闭了服务。想让服务在后台一直运行且永远不挂掉,推荐后台服务守护进程神器pm2,强大且适用于各种语言的后台服务程序。

pm2介绍

对于后台进程的管理,常用的工具是crontab,可用于两种场景:定时任务和常驻脚本。关于常驻脚本,今天介绍一款更好用的工具:pm2,基于nodejs开发的进程管理器,适用于后台常驻脚本管理,同时对node网络应用有自建负载均衡功能。pm2 是一个带有负载均衡功能的Node应用的进程管理器,pm2支持多种开发语言,只是对于除node之外的其他进程无负载均衡的能力。

主要特性

1.内建负载均衡(使用 Node cluster 集群模块)

2.后台运行

3.0 秒停机重载

4.具有 Ubuntu 和 CentOS 的启动脚本

5.停止不稳定的进程(避免无限循环)

6.控制台检测

7.提供 HTTP API

8.远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)

pm2安装

由于pm2是nodejs环境下的进程守护神器,所以需要先下载安装nodejs. 在linux下的安装很简单,直接sudo apt-get install nodejs即可。下载安装完,注意替换npm的镜像源,否则软件依赖包容易下载失败。

修改成淘宝镜像源

1.命令

npm config set registry https://registry.npmmirror.com/

2.验证命令

npm config get registry

如果返回https://registry.npmmirror.com/,说明镜像配置成功。

修改成华为云镜像源

npm config set registry https://mirrors.huaweicloud.com/repository/npm/

 安装pm2

npm install pm2 -g

pm2使用

pm2常用命令

常用命令通常都是比较简单。下面列举一些pm2常用的管理命令:

  1. pm2 start <script_file|config_file> [options] 启动指定应用,如pm2 start index.js --name httpServer;

  2. pm2 stop <appName> [options] 停止指定应用,如pm2 stop httpServer;

  3. pm2 reload|restart <appName> [options]  重启指定应用,如pm2 restart httpServer;

  4. pm2 show <appName> [options] 显示指定应用详情,如pm2 show httpServer;

  5. pm2 delete <appName> [options] 删除指定应用,如pm2 del httpServer,如果修改应用配置行为,最好先删除应用后,重新启动方才生效,如修改脚本入口文件;

  6. pm2 kill 杀掉pm2管理的所有进程;

  7. pm2 logs <appName>  查看指定应用的日志,即标准输出和标准错误;

  8. pm2 monit 监控各个应用进程cpu和memory使用情况;

  9. pm2 list,查看所有被pm2守护的进程信息。

其他资源

npm ERR! Cannot read property ‘insert‘ of undefined报错处理_吴砖家呀的博客-程序员宅基地

NPM设置国内不同镜像_npm 国内镜像_wangshan_aqi的博客-程序员宅基地

自用 Node.js 安装配置_apt get 安装nodejs_摸鱼芝士的博客-程序员宅基地

pm2详解_starky0729的博客-程序员宅基地

使用pm2管理go应用进程_pm2 go_特立独行的猫a的博客-程序员宅基地

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq8864/article/details/131263032

智能推荐

阿里云CentOS服务器的安全设置及防黑加固_阿里云怎么防止被黑-程序员宅基地

文章浏览阅读1.7k次,点赞12次,收藏19次。之前服务器有几次被攻击的事件(ssh暴力破解、恶意程序、挖矿程序等),其中一次严重事件,服务器无法登录,联系阿里云售后也无法恢复,只能重置。所以决定认真学习下安全设置,并整理成博文,以供需要的人做参考。..._阿里云怎么防止被黑

创建互斥对象-程序员宅基地

文章浏览阅读132次。program AIMQuery;uses Vcl.Forms, Winapi.Windows, UnitAIM in 'UnitAIM.pas' {Form1};{$R *.res}var hAppMutex:THandle;begin Application.Initialize; hAppMutex:=CreateMutex(n..._创建一个互斥对象句柄

win10下MYSQL的下载、安装以及配置超详解教程_mysql官网下载-程序员宅基地

文章浏览阅读10w+次,点赞79次,收藏446次。下载MYSQL 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/。下载流程图如下: 进入官网点击Community,下载社区版。 找到MYSQL Community Server,点击下方DOWNLOAD,进入下载页面。 滑动到页面底部,官网提供了不同电脑位数(32/64位)的下载版本,我的电脑是win10-64位的,选择对应版本下载解压..._mysql官网下载

go echo 实现聊天室功能(websocket连接)_golang echo websocket-程序员宅基地

文章浏览阅读609次。最近在自学go语言,根据掌握的东西试着写一个聊天室功能,代码可能不是最精简的!效果:代码文件放的位置:服务端代码:package mainimport ( "encoding/json" "fmt" "github.com/labstack/echo" "github.com/labstack/echo/middleware" "golang.org/x/net/websocket")type Client struct { Name string //用户名称 _golang echo websocket

Win11重启后无法进入系统解决办法_win11装好后重启进不了系统-程序员宅基地

文章浏览阅读3.5k次。Win11重启后无法进入系统解决办法分享。遇到电脑不能启动问题,很多的用户都会找人来维修。其实不用这么麻烦,只要不是硬件问题,开机的时候屏幕有显示,但是是错误代码。这个情况我们是可以通过重装系统的方法来解决的,我们只需要通过u盘来安装一个新系统,就可以重新开机进入到系统中了。_win11装好后重启进不了系统

MarkVI控制系统EGD通讯协议解析_egd markvi-程序员宅基地

文章浏览阅读2.9k次。MarkVI控制系统EGD通讯协议解析EGD通讯协议解析LCI和励磁控制器通讯协议_egd markvi

随便推点

课堂作业:web网页实验一(1)_web第四版实验1-程序员宅基地

文章浏览阅读2.2k次。需要在里编译<html><head> <title>白居易的诗</title></head><body background="2019-06-01 15'21'33.jpg"><embed src="04.忽然.mp3"><h1><font color="green"..._web第四版实验1

被废弃的 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit-程序员宅基地

文章浏览阅读158次。最近学习多线程的知识,看到API里说这些方法被废弃了,就查了一下原因Thread.stop这个方法会解除被加锁的对象的锁,因而可能造成这些对象处于不一致的状态,而且这个方法造成的ThreadDeath异常不像其他的检查期异常一样被捕获。可以使用interrupt方法代替。事实上,如果一个方法不能被interrupt,那stop方法也不会起作用。Thread.suspend, ..._runfinalizersonexit

微信小程序----修改data中的数据,页面数据不改变_微信 更改属性值后界面未刷新-程序员宅基地

文章浏览阅读7.4w次,点赞19次,收藏37次。错误原因 由于VUE等框架,我们在逻辑层修改data中的数据后,视图层(页面渲染)会跟着发生变化。当然微信小程序也是实现了相同的功能,那么出现错误的原因是什么?答案:微信小程序的setData()方法。常见赋值方式(习惯)导致的错误Page({ data: { isShow: false }, changeStatus(){ console.log(this.dat_微信 更改属性值后界面未刷新

万字长文,细说长沙银行的数字化研发管理转型之路-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏16次。4月17日,长沙银行信息技术部陈宝生总,与Agilean 首席咨询顾问吴穹博士在2021 DevOps Days 大会上,共同作了《长沙银行数字化研发管理之路》的分享。限于大会现场分享时长..._陈宝生 长沙银行

Spark and Hadoop碎片知识点-程序员宅基地

文章浏览阅读140次。Spark and Hadoop碎片知识点合集

vue自定义指令-程序员宅基地

文章浏览阅读72次。vue自定义指令vue中除了核心功能内置的指令外,也允许注册自定义指令。有的情况下,对普通DOM元素进行底层操作,这时候就会用到自定义指令。自定义指令又分为全局的自定义指令和局部自定义指令。全局自定义指令全局注册主要是用过Vue.directive方法进行注册Vue.directive第一个参数是指令的名字(不需要写上v-前缀),第二个参数可以是对象数据。// 注册一个全局自定义指令 `v-focalize`Vue.directive('focalize', { // 当被绑定的元素插入