javascript 一统江湖的势头越来越猛,越来越重的前端,不得不实施前后端分离,angular.js 成功把前端javascript抽象成了一个复杂的MVC框架,注意,它是一个框架,可不是普普通通的插件,或者工具包.
另一位兄弟则是跳出浏览器宿主的限制,活跃在了服务器端,大名鼎鼎的 node.js
还有一位齐头并进的好哥们 mongodb ,它不仅让你使用熟悉的javascript范围数据库,而且还自己实现了javascript引擎.
可能创建 javascript 语言的大牛,看到今天js的发展事态,想必脊梁骨也是阵阵发凉.
我们好像扯远了,开题先痛痛快快意淫一把怎能善罢甘休,O(∩_∩)O~
由于node.js的异步IO,事件轮询等优点,越来越多的web服务在node.js 环境下运行起来,而且node.js 用几句简单的代码自己实现了一个服务器,牛掰大气上档次,可惜就是不能碰到错误,否则就挂.哈哈哈
可见再牛掰的 node.js ,运行在单进程上,一个错误还真有点受不了,所以我们需要一个持续的,稳定的,能重复启动,简单的命令控制,完善的log日志,甚至群集功能 (我不是在做梦吧^_^)
forever 的出现确实解决了部分我上面提到的需求,妈妈再也不用担心我的博客down机 ,(哎,其实博客经常挂,不过我妈确实也没有担心这个事)
官方的说明:
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
一个用来持续运行一个给定脚本的简单的命令行工具
Github地址:
https://github.com/nodejitsu/forever
https://github.com/foreverjs/forever
能做什么?
forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程,保证你服务能持续运行,帮你自动重启服务而不需要手动重启.
如何使用?
forever 必须在全局环境下安装
sudo npm install forever -g
查看帮助信息
ikeepstudying@gideon:~$ forever --help
会列出很多很多......
你必须要掌握下面这几个
// 1. 启动 forever start app.js // 2. 指定forever信息输出文件(默认它会放到~/.forever/forever.log) forever start -l forever.log app.js // 3. 指定app.js中的日志信息和错误日志输出文件, // -o 就是console.log输出的信息, //-e 就是console.error输出的信息 forever start -o out.log -e err.log app.js // 4. 追加日志,forever默认是不能覆盖上次的启动日志, // 所以如果第二次启动不加-a,则会不让运行 forever start -l forever.log -a app.js // 5. 监听当前文件夹下的所有文件改动 forever start -w app.js // 6. 显示所有运行的服务 forever list //如下: zhangzhi@moke:~/code/blog2014$ forever list info: Forever processes running data: uid command script forever pid id logfile uptime data: [0] H5f7 /usr/local/bin/node index.js 26400 26401 /Users/zhangzhi/.forever/H5f7.log 0:0:0:3.253 // 7. stop:停止守护进程 forever stop app.js //或者 forever stop [uid] //[uid] 就是 forever list 对应查询到的启动服务里的 uid (比如上面的 H5f7 ) // 8. 停止所有守护进程 forever stopall // 9. 重启某一个服务 forever restart app.js // 10.重启所有服务 forever restartall
比较常用到的命令上面都简单列出来了.还有一些参数需要搭配命令使用,比如制定输出日志和错误日志路径等.
开发和线上建议配置
// 开发环境下 NODE_ENV=development forever start -l forever.log -e err.log -a app.js // 线上环境下 NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
子命令actions:
start:启动守护进程 stop:停止守护进程 stopall:停止所有的forever进程 restart:重启守护进程 restartall:重启所有的foever进程 list:列表显示forever进程 config:列出所有的用户配置项 set <key> <val>: 设置用户配置项 clear <key>: 清楚用户配置项 logs: 列出所有forever进程的日志 logs <script|index>: 显示最新的日志 columns add <col>: 自定义指标到forever list columns rm <col>: 删除forever list的指标 columns set<cols>: 设置所有的指标到forever list cleanlogs: 删除所有的forever历史日志
配置参数options:
-m MAX: 运行指定脚本的次数 -l LOGFILE: 输出日志到LOGFILE -o OUTFILE: 输出控制台信息到OUTFILE -e ERRFILE: 输出控制台错误在ERRFILE -p PATH: 根目录 -c COMMAND: 执行命令,默认是node -a, –append: 合并日志 -f, –fifo: 流式日志输出 -n, –number: 日志打印行数 –pidFile: pid文件 –sourceDir: 源代码目录 –minUptime: 最小spinn更新时间(ms) –spinSleepTime: 两次spin间隔时间 –colors: 控制台输出着色 –plain: –no-colors的别名,控制台输出无色 -d, –debug: debug模式 -v, –verbose: 打印详细输出 -s, –silent: 不打印日志和错误信息 -w, –watch: 监控文件改变 –watchDirectory: 监控顶级目录 –watchIgnore: 通过模式匹配忽略监控 -h, –help: 命令行帮助信息
更多帮助请参考:粉丝日志 http://blog.fens.me/nodejs-server-forever/
参考:http://yijiebuyi.com/blog/1a642c7b277bc213d3250e946073f045.html
相关推荐
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
书由浅入深,全面、系统地介绍了Node.js开发...Node.js的日志模块、curl模块、crontab模块、forever模块、xml模块和邮件发送模块等应用工具。 本书非常适合从事编程开发的学生、教师、广大科研人员和工程技术人员研读。
Web前端模块化开发教程(ES6+Node.js+Webpack)_源代码.zip
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
第5章 使用Node.js进行Web开发 79 5.1 准备工作 80 5.1.1 使用http模块 82 5.1.2 Express框架 83 5.2 快速开始 84 5.2.1 安装Express 84 5.2.2 建立工程 85 5.2.3 启动服务器 86 5.2.4 工程的结构...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js之http模块的用法 目录 前言HTTP协议HTTP服务器文件服务器练习 前言 HTTP协议 HTTP服务器 文件服务器 练习 前言 Node.js开发的目的就是为了用JavaScript编写Web服务器程序。因为JavaScript实际上...
《Node.js入门经典》分为6部分,第1部分介绍了Node.js的基本概念和特性;...第6部分则介绍了CoffeeScript这款JavaScript预编译器的知识,以及如何在Node.js中使用中间件、Backbone.js来创建单页面应用的知识。
《Node.js入门经典》分为6部分,第1部分介绍了Node.js的基本概念和特性;...第6部分则介绍了CoffeeScript这款JavaScript预编译器的知识,以及如何在Node.js中使用中间件、Backbone.js来创建单页面应用的知识。
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
它还使您可以直接从DOM调用Node.js模块,并提供一种使用所有Web技术编写本机应用程序的新方式。 它是在英特尔开源技术中心创建的。 使用NW.js构建跨平台桌面应用程序使用node-webkit WebApp创建桌面应用程序
[Packt Publishing] Node.js the Right Way Practical, Server-Side JavaScript That Scales (E-Book) ☆ 图书概要:☆ Get to the forefront of server-side JavaScript programming by writing compact, robust,...
它运行在Google Chrome浏览器V8核心的超快速JavaScript引擎之上,并添加了快速而强大的异步网络I / O模块库。 Node.js的主要重点是开发高性能,高可伸缩性的Web应用程序,并且在其他领域也得到了广泛的应用。 ...
Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node ...
Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node ...
Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node ...
Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node ...
《Node.js项目实践:构建可扩展的Web应用》涉及许多组件的使用,比如安全、部署上线、组织代码、数据库驱动和模板引擎等,从中可使读者接触到很多经过历年实践所得出的广受欢迎的模块库,它们可以大大提高开发人员的...