使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用

2024-06-03 08:44

本文主要是介绍使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用。

使用 pm2

pm2 是一个用于 Node.js 应用的进程管理工具,提供了守护进程、日志管理和应用重启等功能。

安装 pm2:

npm install pm2 -g

启动你的 Node.js 应用:

pm2 start server.js

保存 pm2 配置以便系统重启后自动恢复:

pm2 save

配置 pm2 在系统启动时自动启动:

pm2 startup

使用 screen

screen 是一个终端多路复用器,允许你在一个终端会话中运行多个终端。

安装 screen(如果未安装):

sudo apt-get install screen

启动一个新的 screen 会话:

screen -S my-node-app

在 screen 会话中启动你的 Node.js 应用:

node server.js

分离 screen 会话(但保持应用运行):

按下 Ctrl + A 然后按 D

重新连接到 screen 会话:

screen -r my-node-app

这两种方法都可以在你关闭终端后保持 Node.js 应用继续运行。推荐使用 pm2,因为它提供了更多功能,如自动重启、监控和日志管理等。

详细步骤:
pm2 方法:

安装 pm2:

npm install pm2 -g

启动 Node.js 应用:

pm2 start server.js

保存当前 pm2 配置:

pm2 save

设置 pm2 开机自启动:

pm2 startup

screen 方法:

安装 screen:

sudo apt-get install screen

启动 screen 会话:

screen -S my-node-app

运行 Node.js 应用:

node server.js

分离 screen 会话:

按下 Ctrl + A 然后按 D

重新连接到 screen 会话:

screen -r my-node-app

选择适合你的工具,并按照以上步骤进行操作,可以确保你的 Node.js 应用在终端窗口关闭后依然正常运行。

使用 pm2 来管理 Node.js 应用非常方便,如果你需要关闭一个运行中的应用,可以使用以下步骤:

关闭指定的应用
查看正在运行的应用列表:

pm2 list

这条命令会显示所有由 pm2 管理的应用程序的列表,包括它们的 ID、名称和状态。

停止指定的应用:

pm2 stop <app_id|app_name>

你可以使用应用的 ID 或名称来停止应用。例如,如果应用的 ID 是 0 或名称是 server:

pm2 stop 0

pm2 stop server

停止并删除指定的应用
如果你不仅想停止应用,还希望从 pm2 的管理列表中删除它,可以使用 delete 命令:

停止并删除应用:

pm2 delete <app_id|app_name>

停止所有运行中的应用
如果你想停止所有由 pm2 管理的应用,可以使用以下命令:

停止所有应用:

pm2 stop all

停止 pm2 自身(不推荐,除非你确定要停止 pm2 管理的所有进程)
停止 pm2 守护进程:

pm2 kill

这会停止 pm2 本身及其管理的所有应用。

示例步骤

假设你已经启动了一个名为 server 的应用,你可以通过以下步骤来管理它:

查看所有运行的应用:

pm2 list

停止名为 server 的应用:

pm2 stop server

如果你不再需要 server 应用的管理记录,可以删除它:

pm2 delete server

通过这些命令,你可以轻松管理 pm2 中的 Node.js 应用,包括启动、停止和删除等操作。

这篇关于使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定