如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你 在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚 本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如 果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因 为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。
supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。 使用方法很简单,首先使用 npm 安装 supervisor:
$ npm install -g supervisor
如果你使用的是 Linux 或 Mac,直接键入上面的命令很可能会有权限错误。原因是 npm 需要把 supervisor 安装到系统目录,需要管理员授权,可以使用 sudo npm install -g supervisor 命令来安装。
接下来,使用 supervisor 命令启动 app.js: $ supervisor app.js
DEBUG: Running node-supervisor with DEBUG: program 'app.js' DEBUG: --watch '.' DEBUG: --extensions 'node|js' DEBUG: --exec 'node'
DEBUG: Starting child process with 'node app.js'
DEBUG: Watching directory '/home/byvoid/.' for changes. HTTP server is listening at port 3000.
当代码被改动时,运行的脚本会被终止,然后重新启动。在终端中显示的结果如下:
DEBUG: crashing child DEBUG: Starting child process with 'node app.js' HTTP server is listening at port 3000.
supervisor 这个小工具可以解决开发中的调试问题。
Supervisor是一个进程管理工具,官方的说法
用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor
这个工具主要就两个命令:
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口。
安装(Centos):
- # yum install python-setuptools
- # easy_install supervisor
- 如果easy_install不好使就从官方下载:
- 然后通过python安装:
- # tar zxf supervisor-3.1.3.tar.gz
- # cd supervisor
- # python setup.py install
成功安装后可以登陆python控制台输入import supervisor 查看是否能成功加载。
生成配置文件(supervisord.conf):
echo_supervisord_conf > /etc/supervisord.conf
修改配置文件:
在supervisord.conf最后增加(分号后边的表示注释,可以不写):
- [program:bandwidth]
- command=python26 /usr/local/bin/bandwidth.sh ;需要执行的命令wd)
- user =root ;(default is current user , required if root)
- autostart=true ;start at supervisord start (default: true)
- autorestart=true ;whether/when to restart (default: unexpected)
- startsecs=3 ;number of secs prog must stay running ( def . 1)
- stderr_logfile=/tmp/bandwidth_err.log ;redirect proc stderr to stdout (default false) 错误输出重定向
- stdout_logfile=/tmp/bandwidth.log ;stdout log path, NONE for none; default AUTO, log输出
- (更多配置说明请参考:http://supervisord.org/configuration.html)
运行命令:
supervisord -c /etc/supervisord.conf //启动supervisor
supervisorctl //打开命令行
- [root @iZ2365j7l5bZ bin]# supervisorctl status
- bandwidth RUNNING pid 2423 , uptime 0 : 06 : 35
- [root @iZ2365j7l5bZ bin]# supervisorctl help
- default commands (type help <topic>):
- =====================================
- add clear fg open quit remove restart start stop update
- avail exit maintail pid reload reread shutdown status tail version
ctl中: help //查看命令
ctl中: status //查看状态
另外有一个坑需要注意:如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。
+
+
+
=
+
=
+
相关推荐
安装完成后,可以使用`node -v`命令检查版本,`npm -v`检查npm(Node Package Manager)版本。 2. 第一个NodeJS程序:通常,NodeJS程序始于一个`.js`文件,通过`console.log()`输出信息。例如: ```javascript ...
用node.js实现区块链开发,对区块链开发有兴趣的同学可以下载看看
使用_nodejs_+_puppeteer_自动预定武汉大学羽毛球场地_whu_gym_book
毕业设计_(后台管理系统):NodeJs_+_VueJs_前后端分离_finalDesign
《数据库系统》课程设计——网络选课系统。采用_vueJS_+_NodeJS_+_MySQL_+_We_DB-curriculum-design
nodejs官网linux_windows安装包,官方安装包整理。。。。
通过R语言的支持库Rserve实现R语言与其Nodejs的通信_node-R-web
path C:\Program Files\nodejs\node_cache\_cacache\tmp\9600794e npm ERR! errno -4048 npm ERR! Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\node_cache\_cacache\tmp\9600794e' npm ...
nodejs_express_template 服务器设置 1.克隆应用 $ git clone git@github.com:lambiengcode/nodejs_express_template.git 2.安装节点软件包 $ npm install 3.在本地运行 $ npm start 注意:默认情况下,端口为...
该项目由nodejs+express+mysql搭建的web项目,基于MVC设计,有过开发经验的都能看懂,适用于nodejs初学者,启动项目前执行命令:npm install web访问路径:localhost:3000/user/user
Open this probject in atom-typescript. Press F6 to build. And then npm publish away.This project can be consumed flawlessly from the sister project ts-npm-module-consume
The lab discuss the problem faced when image is loaded without http protocol and then describe in step by step manner that how to run first node js application for graphics.
今天小编就为大家分享一篇关于nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:Developnodejsnode_global'at Error,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...
错误原因 在设置npm的cache和predix时,因为使用参考其他教程照抄,而没有修改为本机对应路径,本机上并没有这个地址,因此造成了...Error: UNKNOWN: unknown error, mkdir ‘D:\Develop\nodejs\node_global’ at Error
全局缓存api_ticket 和token 1.客户微信公众平台提供的appID AppSecret,只需修改config/defaults.js 2.客户微信公众平台只提供的ticket ,一般通过http请求去获取ticket
NodeJs_express_MySql_Login
NodeJS_Express_CRUD_with_MongoDB 节点版本v12.18.3 从开发开始 npm i cp .env.example .env np run dev 要在Docker中全部启动 #Create the image for our node backend sudo docker build -t node-app_rithmi . #...
zoomclone_js_nodejs_webRTC_socketio_ejs_uuid
使用以下命令克隆项目: git clone https://github.com/Pjorda96/nodejs_api_template.git 使用cd nodejs_api_template转到克隆的项目使用npm i安装依赖项安装依赖项时,请检查上的config变量,以确定密钥,令牌...
KEA_DAT_NODEJS_2021_SPRING