使用 fswatch 文件监控,热编译,workerman更新自动重启
问题:使用workerman搭建的常驻内存框架,开发时每次代码修改都要 reload服务 很影响开发效率
方案:使用fswatch解决这个问题
什么是fswatch:
fswatch是一个跨平台的文件更改监视,获取通知警报在指定的文件或目录的内容被改变或修改
安装fswatch
Linux:
# 下载 wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz # 解压 tar -zxvf fswatch-1.9.3.tar.gz # 进入目录 cd fswatch-1.9.3/ # 编译 ./configure sudo make sudo make install # 刷新链接并缓存到动态库 sudo ldconfig
Mac:
brew install fswatch
使用方法:fswatch 命令 参数自行百度
shell脚本:
#!/bin/bash DIR=$1 if [ ! -n "$DIR" ] ;then echo "you have not choice Application directory !" exit fi echo $DIR fswatch $DIR | while read file do # 此处根据自己的需求修改 例如我只监控PHP文件 result=$(echo $file | grep ".php$") if [[ $result != "" ]] then echo "${file} was modify" # 此处可以做想做的操作 # 例如:XXX -d reload fi done