nodejs 服务器 崩溃 2种解决办法

用node启动server后,发现服务器不稳定,经常crash。我是用ssh远程登录的,ssh远程通道中断,或者Ctrl+C,都会使nodejs server崩溃掉。

一,node server 崩溃模拟

1,ssh远程登录到nodejs的服务器,并启动node server

[[email protected] nodejs]# node server.js
Server running at port 8000

2,中断ssh连接,这个时候在通过url访问,就不行了。

二,nohup的解决办法

1,启动node server

[[email protected] nodejs]# nohup node server.js >> /var/log/nodejs/server_port_8000.log &

启动node server,并放到后台执行,并且记录log日志,注意:这样记录日志,时间长了,日志文件会比较大,要自己写一个shell脚本,控制文件大小。

[[email protected] nodejs]# nohup node server.js 1>/dev/null 2>&1 &   //这种方式,不记录log日志。

注意:用nohup的方法,node server是没有守护进程的,放到后台运行,如果node server崩溃掉,web一样不能访问。

2,关闭node server

[[email protected] ~]# ps aux|grep node    //查看node server
root     10680  0.0  0.3 826308 14556 pts/6    Sl   12:20   0:00 node server.js
root     15765  0.0  0.7 1031248 30144 ?       Sl   Feb25   0:01 node scripts/web-server.js
root     19648  0.0  0.0 103240   872 pts/3    S+   13:57   0:00 grep node

[[email protected] ~]# kill 10680   //关闭10680的node server

[[email protected] ~]# ps aux|grep node
root     15765  0.0  0.7 1031248 30144 ?       Sl   Feb25   0:01 node scripts/web-server.js
root     19653  0.0  0.0 103240   872 pts/3    S+   13:57   0:00 grep node

三,forever工具

1,安装forever

# npm install forever

forever目前只支持到node 0.8,如果装了node 0.10的,forever工具就不能用了。安装的时候会报出 warning forever wants 0.8, but has 0.10 ,虽然能安装成功,但是用不了。向上不兼容很坑爹。

2,forever参数和用法

# forever [start | stop | stopall | list] [options] SCRIPT [script options]

3,forever实例

# forever start server.js    //启动node server

# forever list                    //查看启动的node server
 server.js [ 24597, 24596 ]

# forever stop 0                  //停止第0个node server
Forever stopped process:
 server.js [ 24611, 24596 ]

原文地址:https://www.cnblogs.com/lcword/p/8296044.html

时间: 2024-12-20 20:17:59

nodejs 服务器 崩溃 2种解决办法的相关文章

PHP CURL本地可以采集服务器上不能采集解决办法

PHP CURL本地可以采集服务器上不能采集解决办法,今天采集一个站,在本机上写好代码,发到网站服务器上确采集不到数据.这里分析,会不会是目标站对网站做了防采集. 网上搜了下解决办法,这里用PHP CURL伪造IP和来源测试看看.代码如下. //随机IP function Rand_IP(){ $ip2id= round(rand(600000, 2550000) / 10000); //第一种方法,直接生成 $ip3id= round(rand(600000, 2550000) / 10000

spring mvc ajax中文乱码的几种解决办法

使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的 ,研究了一下,有几种解决办法. 方法一: 在@RequestMapping里面加入produces = "text/html;charset=UTF-8" Java代码 @RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = &quo

Eclipse 安装 ADT 失败的两种解决办法 [Android Development Tooling]

原因 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点.众所周知的原因,Eclipse 直接安装 ADT(Android Develepment Tooling) 插件是不行的,这里给出两种解决办法,我们的前提是要先安装 Google 的 翻[email protected]!墙工具 GoAgent . 一.使用 Proxy 由于直接访问是不行的,所以你可以使用 VPN 或者 GoAgent 做为

ORA-01950: 表空间'USERS'中无权限的2种解决办法

总的来说这个错误是由于对表空间操作的权限不足造成的,所以这个时候就可以检查出错之前对于所操作的表赋权grant connect,resource to zhangbojie ; ORA-01950: 表空间'USERS'中无权限的2种解决办法

Unity多单位战斗寻路问题的一种解决办法

Unity多单位战斗寻路问题的一种解决办法 Unity提供了NavMesh 导航组件 ? NavMesh是在实践中通用性最好的一种导航方式,但是Unity的实现并没有完全提供一个开放自由的API. 主要的麻烦是: 1.不能脱离Editor生成NavMesh. 2.NavMesh信息保存在场景中,必须随场景加载. ? 他的使用方式主要是在Editor阶段设定障碍关系. NavMeshAgent 作为移动单位来寻路 NavMeshObstacle 作为动态障碍 NavMeshAgent和NavMes

无法打开BCP主数据文件的一种解决办法

今天在导出数据库的时候遇到了这个问题,网上搜索了很多办法都无法解决! 最后发现是目录不存在导致的,但是提示是“无法打开BCP主数据文件” 如果出现这个提示检测下,目录是否存在! 标签: Sql2005 无法打开BCP主数据文件的一种解决办法

window7远程桌面到服务器不能复制粘贴解决办法

用远程桌面登陆服务器不能在本机和远程服务器之间粘贴文本了,即不能从本机复制文本粘贴到服务器,也不能从服务器复制文本粘贴到本机. 以下是解决方法之一,试了几次都很管用户: 在服务器上打开任务管理器,查看进程,若存在 rdpclip.exe 进程 ,关闭此进程后,  开始->运行->rdpclip.exe 重新运行此程序,恢复正常. 一般是此进程出了问题导致. window7远程桌面到服务器不能复制粘贴解决办法

JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

原文:JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,远哥目前找到了2种方法. 这2种方式都可以实现不用persistence.xml文件,免去每个Entity都要在persistence.xml文件中配置的烦恼,但是这种方式Entity实体类的主键字段注解@ID要放到 getXXX()方法上,否则不认. 方式1: 修改

64位Ubuntu运行32位程序时报文件不存在(No such file or Directory)的一种解决办法

尝试在64位Ubuntu下面运行32位程序时, 一直说 文件不存在(No such file or directory), 我只想说++. 你tm说个文件格式不正确不就好了? 非得说个文件不存在! 真的不存在? 我要是找出来了, 你给我吃了? jesus, 害我浪费这么多时间. 一种解决办法: 安装32位运行库: sudo apt-get install ia32-libs