后台服务守护进程神器pm2介绍及使用

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 后台服务守护进程神器pm2介绍及使用

前言


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常用的管理命令:


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


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


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


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


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


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


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


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


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


其他资源


npm ERR! Cannot read property ‘insert‘ of undefined报错处理_吴砖家呀的博客-CSDN博客


NPM设置国内不同镜像_npm 国内镜像_wangshan_aqi的博客-CSDN博客


自用 Node.js 安装配置_apt get 安装nodejs_摸鱼芝士的博客-CSDN博客


pm2详解_starky0729的博客-CSDN博客


使用pm2管理go应用进程_pm2 go_特立独行的猫a的博客-CSDN博客

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7月前
|
Unix Shell Linux
Linux 终端和进程的关系,以及在终端前后台切换进程
Linux 终端和进程的关系,以及在终端前后台切换进程
157 1
|
7月前
|
Linux Shell
Linux 进程的前台/后台切换
当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。
136 6
|
2月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
39 1
|
3月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
152 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
2月前
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
66 0
|
4月前
|
Android开发 开发者 Kotlin
Android 多进程情况下判断应用是否处于前台或者后台
本文介绍在多进程环境下判断Android应用前后台状态的方法。通过`ActivityManager`和服务信息`RunningAppProcessInfo`可有效检测应用状态,优化资源使用。提供Kotlin代码示例,帮助开发者轻松集成。
278 8
|
5月前
|
存储 缓存 NoSQL
Redis性能优化问题之优化 Redis fork 耗时严重的问题,如何解决
Redis性能优化问题之优化 Redis fork 耗时严重的问题,如何解决
|
6月前
|
开发框架 安全 .NET
【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令
【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令
|
5月前
|
应用服务中间件 nginx
cmd 杀掉 nginx后台进程 命令杀掉nginx后台 nginx 常用命令
cmd 杀掉 nginx后台进程 命令杀掉nginx后台 nginx 常用命令
451 0
|
7月前
|
安全 Linux 应用服务中间件
操作系统引导过程 与 服务进程的控制
操作系统引导过程 与 服务进程的控制