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

一,node server 崩溃模拟

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

[root@hatch nodejs]# node server.js
Server running at port 8000

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

二,nohup的解决办法

1,启动node server

[root@hatch nodejs]# nohup node server.js >> /var/log/nodejs/server_port_8000.log &

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

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

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

2,关闭node server

[root@hatch ~]# 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 [root@hatch ~]# kill 10680 //关闭10680的node server [root@hatch ~]# 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 ]

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

  1. ArcGIS客户端API中加载大量数据的几种解决办法

    ArcGIS客户端API中加载大量数据的几种解决办法 2011-03-25 18:17 REST风格的一切事物方兴未艾,ArcGIS Server的客户端API(Javascript/Flex/Sil ...

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

    Unity多单位战斗寻路问题的一种解决办法 Unity提供了NavMesh 导航组件   NavMesh是在实践中通用性最好的一种导航方式,但是Unity的实现并没有完全提供一个开放自由的API. 主 ...

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

    尝试在64位Ubuntu下面运行32位程序时, 一直说 文件不存在(No such file or directory), 我只想说++. 你tm说个文件格式不正确不就好了? 非得说个文件不存在! 真 ...

  4. (转)eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法

    文章来源:http://blog.csdn.net/zcyhappy1314/article/details/8307534 下面说的这种情况是在正确安装ADT插件的前提下,重启eclipse后,工具 ...

  5. 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法

    原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...

  6. No Spring WebApplicationInitializer types detected on classpath 问题的一种解决办法

    今天在idea中编译部署工程,tomcat报了这个错误: No Spring WebApplicationInitializer types detected on classpath 导致前端页面访 ...

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

    原因 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点.众所周知的原因,Eclipse 直接安装 AD ...

  8. SQL Server数据库实例名与服务器名不一致的解决办法

    SQL Server数据库实例名与服务器名不一致的解决办法 --EXEC sp_addlinkedserver --   @server = 'PSHGQ' --GO --select * from  ...

  9. 在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入Ubuntu问题的一种解决办法。【转】

    本文转载自:http://blog.csdn.net/u012879090/article/details/74937762 在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入U ...

随机推荐

  1. hive的窗口函数cume_dist、fercent_rank

    一.cume_dist 这两个序列分析函数不是很常用,这里也介绍一下.注意: 序列函数不支持WINDOW子句. 数据准备: d1,user1, d1,user2, d1,user3, d2,user4 ...

  2. 【PAT】1014. 福尔摩斯的约会 (20)

    1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...

  3. 5 Linux网络编程基础API

    5.1   socket地址API 大端字节序(网络序):高位在低址,低位在高址 小端字节序(主机序):低位在低址,高位在高址 判断,利用联合的特性: #include <iostream> ...

  4. 微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART2——了解Unity的使用方法(3)

    今天继续介绍Unity,在上一篇的文章中,我介绍了使用UnityContainer来注册对象之间的关系.注册已存在的对象之间的关系,同时着重介绍 了Unity内置的各种生命周期管理器的使用方法,今天则 ...

  5. chakra在vs2017中编译出现的问题

    转:http://blog.csdn.net/ink_cherry/article/details/73437981 1.无法找到vs2010生成工具 MSB8020 无法找到 Visual Stud ...

  6. ApplicationContext中getBean详解

    在org.springframework.context包中有一个接口叫 applicationContext applicationContext中有一个getBean方法,此方法继承之BeanFa ...

  7. XV6操作系统代码阅读心得(二):进程

    1. 进程的基本概念 从抽象的意义来说,进程是指一个正在运行的程序的实例,而线程是一个CPU指令执行流的最小单位.进程是操作系统资源分配的最小单位,线程是操作系统中调度的最小单位.从实现的角度上讲,X ...

  8. 简单模仿拉钩网上的“hot_info”

    目录 前言 技术 判断进入div的方向 动画 绑定事件 css html 还需改进的地方 前言 突然想起来之前看到拉钩网上的hot_info(不知道该叫什么,但是拉钩网上这个div的class是hot ...

  9. python 进程间通信(下)

    利用 Value,Array   先说明这个方法并不常用,因为有更灵活的方法 from multiprocessing import Process,Value,Array def f(n,a,not ...

  10. python 爬取世纪佳缘,经过js渲染过的网页的爬取

    #!/usr/bin/python #-*- coding:utf-8 -*- #爬取世纪佳缘 #这个网站是真的烦,刚开始的时候用scrapy框架写,但是因为刚接触框架,碰到js渲染的页面之后就没办法 ...