【pm2 - sdk 集成到程序中,典型用法】

2024-05-28 03:20
文章标签 sdk 程序 用法 集成 典型 pm2

本文主要是介绍【pm2 - sdk 集成到程序中,典型用法】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pm2作为一款进程管理神器,除了命令行的启动方式外,其还对应有sdk,集成到程序中,我们可以连接到已有或创建pm2的守护进程,与其进行交互,动态,编程式地控制程序的启停等。以下为示例:

示例

假设有个 http server程序,

//  server.js
let port = process.env.port ? process.env.port : 8000;
const http = require("node:http");
http.createServer((req, res) => {let workerPid = process.pid;res.writeHead(200);res.end(`hello world, I am worker ${workerPid}\n`);}).listen(port);

典型用法如下,

const pm2 = require("pm2");
// This will spawn or connect to local PM2
// Either connects to a running pm2 daemon (“God”) or launches and daemonizes one.
// 1. connect
pm2.connect(function (err) {if (err) {console.error(err);process.exit(2);}pm2.start({script: "server.js",name: "http-server",},function (err, apps) {if (err) {console.error(err);return pm2.disconnect();}// 2. listpm2.list((err, list) => {console.log(err, list);// 3. restartpm2.restart("http-server", (err, proc) => {// 4. disconnect// Disconnects from PM2pm2.disconnect();});});});
});

1,connect: 连接到 pm2 守护进程 或 启动一个新的 pm2 守护进程。
2,list: 获取当前 pm2 管理的所有进程列表。
3,restart: 重启指定的应用。
4,disconnect: 断开与 pm2 守护进程的连接, 注意断开后,启动的程序还在。

如果想这段程序退出时,对应启动pm2程序也退出,可以加上这段代码

// graceful exit
process.on("SIGINT", function () {pm2.stop("http-server", (err, proc) => {console.log(err, proc);// process.exitprocess.exit(0);});
});

这篇关于【pm2 - sdk 集成到程序中,典型用法】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009404

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf