使用 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