Total Pageviews

Friday, 16 September 2016

对于 Node 应用来说,有一些专门用来启动的工具

他们是:forevernodemonpm2

forever 的功能很简单,就是保证进程退出时,应用会自动重启:
# 作为前台任务启动
$ forever server.js

# 作为服务进程启动 
$ forever start app.js

# 停止服务进程
$ forever stop Id

# 重启服务进程
$ forever restart Id

# 监视当前目录的文件变动,一有变动就重启
$ forever -w server.js

# -m 参数指定最多重启次数
$ forever -m 5 server.js 

# 列出所有进程
$ forever list
nodemon一般只在开发时使用,它最大的长处在于 watch 功能,一旦文件发生变化,就自动重启进程。

# 默认监视当前目录的文件变化
$ nodemon server.js

# 监视指定文件的变化   
$ nodemon --watch app --watch libs server.js  
pm2 的功能最强大,除了重启进程以外,还能实时收集日志和监控。

# 启动应用
$ pm2 start app.js

# 指定同时起多少个进程(由CPU核心数决定),组成一个集群
$ pm2 start app.js -i max

# 列出所有任务
$ pm2 list

# 停止指定任务
$ pm2 stop 0

# 重启指定任务
$ pm2 restart 0

# 删除指定任务
$ pm2 delete 0

# 保存当前的所有任务,以后可以恢复
$ pm2 save

# 列出每个进程的统计数据
$ pm2 monit

# 查看所有日志
$ pm2 logs

# 导出数据
$ pm2 dump

# 重启所有进程
$ pm2 kill
$ pm2 resurect

# 启动web界面 http://localhost:9615
$ pm2 web
 相关帖子:
http://briteming.blogspot.com/2016/08/systemdnodedaemon.html

Linux的守护进程(daemon进程)的启动方法

------------

nodemon热重启

本地安装

1
npm install nodemon --save

创建配置文件 nodemon.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "restartable": "rs",
  "ignore": [
    "node_modules/",
    "public/**/*.*"
  ],
  "verbose": true,
  "execMap": {
    "js": "node --harmony"
  },
  "watch": [

  ],
  "env": {
    "NODE_ENV": "development"
  },
  "ext": "js json"
}
  • restartable-设置重启模式
  • ignore-设置忽略文件
  • verbose-设置日志输出模式,true 详细模式
  • execMap-设置运行服务的后缀名与对应的命令
    1
    2
    3
    {
     “js”: “node –harmony”
    }
  • 表示使用 nodemon 代替 node
  • watch-监听哪些文件的变化,当变化的时候自动重启
  • ext-监控指定的后缀文件名

运行

1
nodemon app.js