Node学习教程(3)——node自动重启运行

Node.js热更新实践
本文介绍了一种在Node.js开发中实现代码修改后自动刷新页面的方法,通过使用NodeSupervisor工具,可以实现在修改JS文件内容后无需手动重启服务即可看到效果,极大地提高了开发效率。

刚开始学Node.js, 做了一个简单的例子后发现修改JS内容后刷新网页内容不会更新。需要再次重启服务才可以。这对于日常开发来说简直太麻烦了。于是找到了这个方法,亲测可用。

使用:Node Supervisor

Node Supervisor原本是用于服务器上Node.js应用崩溃的时候,自动重新启动。当然它也可以监控你的项目的js文件变化,自动重启来方便调试。

安装
npm install supervisor -g

使用
关掉之前开启的node服务,然后在项目路径下使用命令:supervisor yourApp.js 来开启 Supervisor.它会开启node服务,并不停的检测文件变化,当JS文件内容修改后,自动从起服务,很方便。

更多参数
一般情况下上述方法就已经够用了,Supervisor还提供了一些可选参数,如下:

//要监控的文件夹或js文件,默认为’.’
-w|—watch
//要忽略监控的文件夹或js文件
-i|—ignore
//监控文件变化的时间间隔(周期),默认为Node.js内置的时间
-p|—poll-interval
//要监控的文件扩展名,默认为’node|js’
-e|—extensions
//要执行的主应用程序,默认为’node’
-x|—exec
//开启debug模式(用—debug flag来启动node)
—debug
//安静模式,不显示DEBUG信息
-q|—quiet

参数使用实例
supervisor myapp.js
supervisor -w py_scripts -e ‘py’ -x python myapp.py
supervisor -w lib, server.js, config.js, server.js

转载:http://blog.sina.com.cn/s/blog_6f72ff900102wm37.html

### 设置Node-RED服务崩溃后自动重启 对于希望确保Node-RED实例在遇到意外情况时能够自动恢复的服务部署而言,在Ubuntu环境中利用`systemd`来管理Node-RED是一项高效的选择。通过编辑或创建一个`.service`文件可以定义当进程终止时的行为模式。 具体来说,可以通过修改`/etc/systemd/system/node-red.service`中的`Restart=`参数达到这一目的[^2]: ```ini [Unit] Description=Node-RED After=network.target [Service] ExecStart=/usr/bin/env node-red Restart=always # 当服务停止时总是尝试重新启动它 User=nodered # 替换为实际运行Node-RED的用户名 Group=nodered # 替换为实际运行Node-RED的组名 Environment="NODE_OPTIONS=--max_old_space_size=256" [Install] WantedBy=multi-user.target ``` 上述配置中设置了`Restart=always`选项意味着无论是什么原因导致了Node-RED退出(无论是正常关闭还是异常中断),都会触发系统的自动重试机制去再次激活该应用。这有助于提高系统的稳定性和可用性,特别是在无人值守的情况下尤为重要。 另外值得注意的是,除了简单的重启策略外,还可以考虑采用更加复杂的方案比如设置最大重启频率(`RestartSec`)以及日志记录等措施进一步增强健壮性。例如增加如下几行可指定每次重启前等待的时间间隔并限制每分钟内最多允许几次重启操作: ```ini RestartSec=10s # 每次重启之间至少相隔10秒 StartLimitInterval=60 # 在给定时间窗口内的最小持续周期(单位: 秒) StartLimitBurst=3 # 时间窗内允许的最大连续启动次数 ``` 最后一步是要使这些更改生效,则需执行命令刷新守护程序配置并向系统注册新的单元文件以便于后续管理和控制: ```bash sudo systemctl daemon-reload sudo systemctl enable node-red.service sudo systemctl start node-red.service ``` 以上方法不仅适用于Ubuntu 16.04版本之后的操作系统,同样也兼容更新版本如Ubuntu 20.04等,因为它们都基于相同的init框架——Systemd来进行初始化和服务管理[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值