首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PM2正在工作,但是重启次数很多,没有错误吗?

PM2是一个流行的Node.js进程管理工具,用于在生产环境中管理和监控Node.js应用程序。当PM2正在工作但重启次数很多且没有错误时,可能存在以下几种情况:

  1. 应用程序的代码存在问题:重启次数增加可能是由于应用程序代码中存在错误或异常导致的。可以通过查看应用程序的日志文件或使用调试工具来定位和解决问题。
  2. 内存泄漏:重启次数增加也可能是由于内存泄漏导致的。内存泄漏会逐渐消耗系统的可用内存,最终导致应用程序崩溃或重启。可以使用内存分析工具来检测和解决内存泄漏问题。
  3. 资源限制:重启次数增加还可能是由于系统资源限制导致的。例如,系统的文件描述符、内存或CPU资源不足时,PM2可能会触发重启以保证应用程序的稳定性。可以通过增加系统资源或优化应用程序的资源使用来解决此问题。
  4. PM2配置问题:重启次数增加还可能是由于PM2的配置问题导致的。例如,配置文件中设置的重启策略不合理或PM2的配置参数不正确。可以检查PM2的配置文件并根据需要进行调整。

总之,当PM2正在工作但重启次数很多且没有错误时,需要仔细分析和排查问题的根源,并根据具体情况采取相应的解决措施。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PM2 进程管理工具使用总结

进程; 支持source map,此项针对js, source map文件是js源文件的信息文件,里面存储着源文件的位置信息; 支持热重启; 支持部署工作流,pm2可依据测试环境和线上环境自动部署到不同的服务器...会导致pm2日志过大; min_uptime 应用运行少于时间被认为是异常启动; max_restarts 最大异常重启次数,即小于min_uptime运行时间重启次数; autorestart...但node的child_process.fork是可以实现启动多个进程的,但是为什么没有实现呢?...,min_uptime是应用正常启动的最小持续运行时长,超出此时间则被判定为异常启动; 设定异常重启延时restart_delay,对于异常情况导致应用停止,设定异常重启延迟可防止应用在不可测情况下不断重启的导致重启次数过多等问题...; 设置异常重启次数,如果应用不断异常重启,并超过一定的限制次数,说明此时的环境长时间处于不可控状态,服务器异常。

2.6K40

使用 pm2 守护你的 .NET Core 应用程序

诸如 mysql、apache 等这类程序默认就提供了守护进程或者以守护进程的方式工作,我们熟悉的 “mysqld”、"httpd" 等其中的 d 就是 daemon 的意思。...博主经过长期的在 Linux 下的摸爬滚打,最终发现使用pm2来守护 .NET Core 进程完全没有问题,除了 nodejs 其他的很多程序都是可以的。...这里需要说明一下是使用 pm2 来让进程后台运行,因为如果不是 nodejs 程序, pm2的一些为nodejs准备的功能可能是无法使用的,但是对于我们守护 .NET Core 应用程序足够了。...我们可以清晰的看到我们的应用程序的 pid、运行状态、重启次数(应用程序崩溃重启/手动重启)、运行时间、cpu和内存占用等。...发布,并使用 pm2 启动(此处略)。 通过 pm2 list查询应用程序重启次数为0: ?

1.3K20

Linux 守护进程的启动方法

# 移出最近一个正在执行的后台任务 $ disown # 移出所有正在执行的后台任务 $ disown -r # 移出所有后台任务 $ disown -a # 不移出后台任务,但是让它们不会收到SIGHUP...重定向标准输出和标准错误到文件nohup.out。 也就是说,nohup命令实际上将子进程与它所在的 session 分离了。...$ forever restart Id # 监视当前目录的文件变动,一有变动就重启 $ forever -w server.js # -m 参数指定最多重启次数 $ forever -m 5 server.js...# 停止指定任务 $ pm2 stop 0 # 重启指定任务 $ pm2 restart 0 # 删除指定任务 $ pm2 delete 0 # 保存当前的所有任务,以后可以恢复 $ pm2...save # 列出每个进程的统计数据 $ pm2 monit # 查看所有日志 $ pm2 logs # 导出数据 $ pm2 dump # 重启所有进程 $ pm2 kill $ pm2 resurect

4.9K81

Linux 守护进程的启动方法

# 移出最近一个正在执行的后台任务 $ disown # 移出所有正在执行的后台任务 $ disown -r # 移出所有后台任务 $ disown -a # 不移出后台任务,但是让它们不会收到SIGHUP...重定向标准输出和标准错误到文件nohup.out。 也就是说,nohup命令实际上将子进程与它所在的 session 分离了。...$ forever restart Id # 监视当前目录的文件变动,一有变动就重启 $ forever -w server.js # -m 参数指定最多重启次数 $ forever -m 5 server.js...# 停止指定任务 $ pm2 stop 0 # 重启指定任务 $ pm2 restart 0 # 删除指定任务 $ pm2 delete 0 # 保存当前的所有任务,以后可以恢复 $ pm2...save # 列出每个进程的统计数据 $ pm2 monit # 查看所有日志 $ pm2 logs # 导出数据 $ pm2 dump # 重启所有进程 $ pm2 kill $ pm2 resurect

4.5K50

Jenkins 远程启动nodejs失败,使用pm2守护Nodejs

使用Jenkins 远程ssh到linux,使用命令: ssh root@192.168.10.1 'cd /data/test;nohup npm start &' 发现linux服务器的node进程没有启动...但是本地执行命令: cd /data/test;nohup npm start &  是可以启动的。 大致意思是,如果远程执行的命令,不是守护进程。...中运行的应用 name:应用程序名称 cwd:应用程序所在的目录 script:应用程序的脚本路径 log_date_format: error_file:自定义应用程序的错误日志文件 out_file...,此时触发重启max_restarts设置数量 max_restarts:设置应用程序异常退出重启次数,默认15次(从0开始计数) cron_restart:定时启动,解决重启能解决的问题 watch...的参数还有很多很多很多,这里仅仅是个范例demo

2.5K20

提升 Node.js 服务稳定性,需要关注哪些指标?

CPU Load 高,CPU Usage 低:如果CPU执行的任务数很多,则 CPU Load 会高,但是在任务执行过程中 CPU 经常空闲(比如等待IO),那么利用率就会低。 内存 ?...这不是一个官方的状态码,但是仍被广泛使用。 510 获取资源所需要的策略并没有没满足。...一般在线上运行的 Node 服务都是使用 PM2 启动的。PM2 是 node 进程管理工具,可以利用它来简化很多 node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。...另外 pm2 也支持查看所有历史产生的日志,我们可以通过一些 Error 之类的关键字去检索错误日志。...正常来讲服务的 QPS 可能随着时间的变化进行有规律的增长或减小,但是如果在某段时间内 QPS 发生了成倍的数量级的增长,那么有可能你的服务正在遭受 DDoS 攻击,或者正在被非法调用。

1.3K30

在线六个项目全部迁移Linux

这两年也是见证着跨平台和Docker容器化的迅速发展,恰逢这段时间打算找工作(有好的欢迎内推),看到NetCore、Linux、中间件、Docker、微服务的字样已经出现在了很多求职公司的要求里,我的第一批粉丝中也有很多小伙伴找到了自己的...进程守护 cnpm install -g pm2 当然,你也可以用系统自带的systemctl来操作,毕竟没有界面,而且也不用配置各种服务文件,而且后边在处理nuxt项目的时候,还是PM2可能更好些...但是如果关闭窗口,那服务就停掉了,我们需要守护一下,上边我们说到了,官方的也可以,我更喜欢用PM2来进程守护。...,然后发布了结果,直接重启PM2就行了,比如我们重启下上边刚刚创建id=3的进程: pm2 restart 3 这一列,从图标上我们也可以看出来,这是重启次数,如果某一个项目error了,或者服务器重启了...,pm2会帮助我们自动重启所有的项目服务,保证项目能正常运行,这个可方便多了。

1.1K50

Node应用的进程管理器: PM2详细介绍

这里的PM2,不是PM2.5,跟空气没有半毛钱的关系。它是NodeJs应用的进程管理器,可以利用它来简化很多Node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。...但是我们为什么要使用它了? PM2使用目的 ?...Node本身是一个单线程应用,它的特点就是所有方法都是串行一次执行,并且Node并没有能力像Java一样独自去创建一个新的线程来实现异步操作,如果在执行I/O中遇到了阻塞就会降低整个应用的执行效率,导致...虽然单线程的好处有很多比如避免了线程同步或者死锁、状态同步等等之类的问题,但是在应用和计算能力要求日益倍增的今天,单线程最大的弊端就是无法利用多核CPU带来的优势来提升运行效率。...exec_mode": "cluster", // 应用程序启动模式,这里设置的是cluster_mode(集群),默认是fork "max_restarts" : 3, // 设置应用程序异常退出重启次数

3.1K20

如何在Ubuntu 16.04上设置Node.js生产应用程序

Node.js应用程序可以在命令行运行,但我们将专注于将它们作为服务运行,以便它们在重新启动或失败时自动重启,并且可以安全地在生产环境中使用。...但是,为了使某些npm软件包能够正常工作(例如需要从源代码编译代码的软件包),您需要安装build-essential软件包: sudo apt-get install build-essential...一旦你确定它正在工作,按Ctrl + C终止应用程序(如果你还没有)。 安装PM2 现在我们将安装PM2,它是Node.js应用程序的进程管理器。...show ` to get more details about an app 如您所见,PM2自动分配应用程序名称(基于文件名,没有.js扩展名)和PM2 ID。...键入以下命令确保没有引入任何语法错误: sudo nginx -t 接下来,重启Nginx: sudo systemctl restart nginx 假设您的Node.js应用程序正在运行,并且您的应用程序和

2.1K00

在腾讯云CVM上安装熟悉Node.js

Node.js应用程序可以在命令行运行,但我们将专注于将它们作为服务运行,以便它们在重新启动或失败时自动重启,并且可以安全地在生产环境中使用。...但是,为了使某些软件包能够正常工作(例如需要从源代码编译代码的软件包),您需要安装软件包build-essential: sudo apt-get install build-essential Node.js...一旦你确定它正在工作,按 Ctrl + C终止 应用程序。 安装PM2 现在我们将安装PM2,它是Node.js应用程序的进程管理器。PM2提供了一种管理和守护应用程序的简便方法。...show ` to get more details about an app 如您所见,PM2自动分配 应用程序名称 (基于文件名,没有.js扩展名)和PM2 ID 。...键入以下命令确保没有引入任何语法错误: sudo nginx - t 接下来,重启Nginx: sudo systemctl restart nginx 接下来,如果已启用防火墙,则允许防火墙通过Nginx

6.6K50

生产级部署 Python 脚本,崩溃了怎么办?

现在已经可以重启 PM2 了,还需要告诉 PM2 那些进程状态需要在重启时保持不变,只需要输入命令: $ pm2 save 复制代码 这将创建一个转存文件,记录当前由 PM2 管理的进程状态,PM2 将在重启时...监听 CPU/内存信息 要监听 CPU/内存并检查有关进程的一些信息,需要使用 pm2 monit 命令。 这将打开一个 termcaps 界面,允许试试了解正在运行的应用程序。...通常我们会同时安装 Python2.x 和 Python3.x 的环境,而 PM2 在默认情况下,是通过脚本文件后缀来判断的,如果没有后缀就需要强制指定 --interpreter。...虽然这里使用 Python 来举例,但是本文所有相关命令,是可以适用其他 PM2 支持的脚本程序。...PM2 还有很多强大的功能,比如说利用 SSH 轻松部署到服务器、负载均衡等等都是一些不错的功能,有兴趣可以查阅文档。PM2 文档很健全,大部分问题都可以在文档中找到答案。

1.3K10

如何在Ubuntu 18.04上配置Node.js生产环境应用

如果没有看到预期的输出结果,请确保Node.js应用程序正在运行并配置为侦听在正确的地址和端口。 一旦你确定它正常工作,按下CTRL+C即可终止应用程序(如果您还没有终止程序)。...show ` to get more details about an app 如您所见,PM2会自动分配一个App name(基于文件名,没有.js扩展名)和一个PM2 id。...使用此命令停止应用程序(指定PM2 App name或id): $ pm2 stop app_name_or_id 重启应用程序: $ pm2 restart app_name_or_id 列出PM2当前管理的应用程序...现在,您的Node.js应用程序正在PM2运行和管理,让我们一起设置反向代理。...输入以下命令确保没有引入任何语法错误: $ sudo nginx -t 重启Nginx: $ sudo systemctl restart nginx 假设您的Node.js应用程序正在运行,并且您的应用程序和

2.8K30

如何在Debian 9上设置Node.js生产应用程序

如果没有看到预期的输出,请确保Node.js应用程序正在运行并配置为侦听正确的地址和端口。 一旦你确定它正常工作,按下CTRL+C即可终止应用程序(如果你还没有这么做的话)。...show ` to get more details about an app 如您所见,PM2自动分配一个App name(基于文件名,没有.js扩展名)和一个PM2 id。...使用此命令停止应用程序(指定PM2 App name或id): pm2 stop app_name_or_id 重启应用程序: pm2 restart app_name_or_id 列出PM2当前管理的应用程序...既然您的Node.js应用程序正在PM2运行和管理,那么让我们设置反向代理。...键入以下命令确保没有引入任何语法错误: sudo nginx -t 重启Nginx: sudo systemctl restart nginx 假设您的Node.js应用程序正在运行,并且您的应用程序和

2K51

通过Node.js的Cluster模块源码,深入PM2原理

Node.js无疑是走向大前端、全栈工程师技术栈最快的捷径(但是一定要会一门其他后台语言,推荐Golang),虽然Node.js做很多事情都做不好,但是在某些方面还是有它的优势。...但是为了保险起见,写 TCP、HTTP 服务一定要主动设置这个参数为 1。...然后再讲PM2的原理实现,其实不过是对cluster模式进行了封装,多了很多功能而已~ ---- 首先画了一个流程图 image.png 核心实现源码: function RoundRobinHandle...ls 这样就可以启动你的Node.js服务,并且根据你的电脑CPU个数去启动相应的进程数,监听到错误事件,自带重启子进程,即使更新了代码,需要热更新,也会逐个替换,号称永动机。...如果重启次数过于频繁直接标注为stopped God.clusters_db[clu.pm_id].status = 'starting'; ​ // 逻辑 ... });

2.9K30

node.js WebService异常处理(domain)以及利用domain实现request生命周期的全局变量

于是,服务启动就变成 pm2 start index.js 这样的模式太常见,尤其是内部的小系统。pm2监控node.js进程,一旦挂掉,就重启。...那么聪明的孩子还要做更多的事? ###致命问题:出错后,没有任何返回 ---- 哪天老板体验了一下产品,正好逮到了一次出错,此时页面已经显示加载中,等了半天之后,终于出现“服务器错误”。...加上闭包特性,在error中可以轻松利用res和req,给对应的浏览器返回友好的错误信息。 ###domain真的是独立的? ---- 这里没打算故作玄虚,答案就是“独立的”。...domain.create(); d.on('error', function () {   console.log('cache by domain'); }); d.run(next); 上述代码运行,可以发现错误没有被...更进一步,需要大家监听一下res的finish事件,做一些清理工作。 好了,domain的异常处理就说到这~~~

1.1K40

Nodejs学习笔记(十三)— PM2

简介   PM2   pm2是一个内置负载均衡的node.js应用进程管理器(也支持Windows),其它的类似功能也有不少,但是感觉pm2功能更强,更值的推荐   GitHub地址:https://github.com...从PM2中删除 pm2 delete test   当然也可以pm2 delete 进程ID  重载和重启   当应用程序代码有更新,可以用重载来加载新代码,也可以用重启来完成 pm2 reload...通过查看详情就可以看到很多有用信息,包含日志和错误输出的文件路径(感觉日志是用的比较多的)   多项目操作   上面是单项目操作,多项目操作是如何呢?   ...想要对这2个项目进行批量操作(多个也一样),如下(重加载全部/停止全部/重启全部/删除全部) pm2 reload all pm2 stop all pm2 restart all pm2 delete...本篇主要对PM2常用命令进行说明   PM2还有其它很多其它功能,可以通过上面提供的api链接去查看   但是基本用上面这些命令就够了,现在项目中就用的PM2,感觉还是不错,用于生产环境完全没问题!

1.4K70

深入理解Node.js 进程与线程(8000长文彻底搞懂)

前言 进程与 线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少。...面试会问 Node.js是单线程? Node.js 做耗时的计算时候,如何避免阻塞? Node.js如何实现多进程的开启和关闭? Node.js可以创建线程? 你们开发过程中如何实现进程守护的?...cluster内部隐时的构建TCP服务器的方式来说对使用者确实简单和透明了很多但是这种方式无法像使用childprocess那样灵活,因为一直主进程只能管理一组相同的工作进程,而自行通过childprocess...它的目的是为了让不同的进程能够互相访问资源并进行协调工作。实现进程间通信的技术有很多,如命名管道,匿名管道,socket,信号量,共享内存,消息队列等。Node中实现IPC通道是依赖于libuv。...如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程。注意一般在生产环境使用cluster_mode模式,测试或者本地环境一般使用fork模式,方便测试到错误

1.1K30

在生产环境运行 PM2 & Node.js

很多进程管理工具,广为人知的如 Forever、strong-pm,或是不错的 Linux 系统工具 SystemD。...最棒的是,它在 Linux、Windows 和 macOS 都能工作。...所有这些意味着 PM2 能帮助你保持 Node.js 应用永远运行下去,并在你更新应用或服务器时以 0 故障停机时间自动重启。 安装 PM2 安装 PM2 就是小菜一碟。...你甚至可以通过事实跟踪日志来看到应用背后正在发生什么。PM2 的日志管理也提供了日志循环,这一点非常重要,特别是当应用程序频繁地输出详细日志时。...有三条我经常使用的命令,想必你也应该一样: pm2 logs — 从所有正在运行的应用中输出日志 pm2 logs — 只从指定的应用中输出日志 pm2 flush — 刷新所有日志数据,释放磁盘空间

1.5K10

深入理解Node.js 进程与线程(8000长文彻底搞懂)

前言 进程与 线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少。...面试会问 Node.js是单线程? Node.js 做耗时的计算时候,如何避免阻塞? Node.js如何实现多进程的开启和关闭? Node.js可以创建线程? 你们开发过程中如何实现进程守护的?...cluster内部隐时的构建TCP服务器的方式来说对使用者确实简单和透明了很多但是这种方式无法像使用childprocess那样灵活,因为一直主进程只能管理一组相同的工作进程,而自行通过childprocess...它的目的是为了让不同的进程能够互相访问资源并进行协调工作。实现进程间通信的技术有很多,如命名管道,匿名管道,socket,信号量,共享内存,消息队列等。Node中实现IPC通道是依赖于libuv。...如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程。注意一般在生产环境使用cluster_mode模式,测试或者本地环境一般使用fork模式,方便测试到错误

2.3K10
领券