1.下載fileboy檔案
下載地址:https://gitee.com/dengsgo/fileboy/releases
2.在工作目錄建立一個資料夾,把下載的exr檔案複製一份到資料夾,重新命名為‘fileboy.exe’,新增系統變數PATH:
3.開啟cmd命令視窗執行 fileboy 命令,出現以下圖說明配置成功
4.切換到專案根目錄,執行 fileboy init 。執行後會在根目錄生成一個 filegirl.yaml 檔案。編輯器開啟修改如下
1. 監聽檔案的格式 改為: .php
2.監聽的檔案有更改會執行的命令 改為: php start.php start
3.特殊指令 增加 - exec-when-start
配置完成後,以後啟動專案只需要在根目錄執行:fileboy 命令就可以了。
完整的配置檔案如下:
#################### ## 配置檔案說明 ## 執行 fileboy 所在的路徑為工作目錄; ## 使用 -filegirl 命令引數可以載入指定路徑的 filegirl 配置(不限定工作目錄),如 "fileboy -filegirl /user/f/go.yml" 或者 "fileboy -filegirl ../../f/go.yml"; #################### # 主配置 core: # 配置版本號 version: 1 # 監控配置 monitor: # 要監聽的目錄。必須是工作目錄下的路徑 # test1 監聽當前目錄下 test1 目錄 # test1/test2 監聽當前目錄下 test1/test2 目錄 # test1,* 監聽當前目錄下 test1 目錄及其所有子目錄(遞迴) # .,* 監聽當前目錄及其所有子目錄(遞迴) includeDirs: - .,* # 不監聽的目錄。必須是工作目錄下的路徑 # .idea 忽略.idea目錄及其所有子目錄的監聽 exceptDirs: - .idea - .git - .vscode - node_modules - vendor # 監聽檔案的格式,此類檔案更改會執行 command 中的命令 # .go 字尾為 .go 的檔案更改,會執行 command 中的命令 # .* 所有的檔案更改都會執行 command 中的命令 types: - .php # 監聽的事件型別,發生此類事件才執行 command 中的命令 # 沒有該配置預設監聽所有事件 # write 寫入檔案事件 # rename 重新命名檔案事件 # remove 移除檔案事件 # create 建立檔案事件 # chmod 更新檔案許可權事件(類unix) events: - write - rename - remove - create - chmod # 命令 command: # 監聽的檔案有更改會執行的命令 # 可以有多條命令,會依次執行 # 如有多條命令,每條命令都會等待上一條命令執行完畢後才會執行 # 如遇互動式命令,允許外部獲取輸入 # 支援變數佔位符,執行命令時會替換成實際值: # {{file}} 檔名(如 a.txt 、test/test2/a.go) # {{ext}} 檔案字尾(如 .go) # {{event}} 事件(上面的events, 如 write) # {{changed}} 檔案更新的本地時間戳(納秒,如 1537326690523046400) # 變數佔位符使用示例:cp {{file}} /root/sync -rf 、 myCommand --{{ext}} {{changed}} exec: - php start.php start # 檔案變更後命令在xx毫秒後才會執行,單位為毫秒 # 一個變更事件(A)如果在定義的延遲時間(t)內, 又有新的檔案變更事件(B), 那麼A會取消執行。 # B及以後的事件均依次類推,直到事件Z在t內沒有新事件產生,Z 會執行 # 合理設定延遲時間,將有效減少冗餘和重複任務的執行 # 如果不需要該特性,設定為 0 delayMillSecond: 2000 # 通知器 notifier: # 檔案更改會向該 url 傳送請求(POST 一段 json 文字資料) # 觸發請求的時機和執行 command 命令是一致的 # 請求超時 15 秒 # POST 格式: # Content-Type: application/json;charset=UTF-8 # User-Agent: FileBoy Net Notifier v1.17 # Body: {"project_folder":"/project/path","file":"main.go","changed":1576567861913824940,"ext":".go","event":"write"} # 例: http://example.com/notifier/fileboy-listener # 不啟用通知,請留空 "" callUrl: "" # 特殊指令 instruction: # 可以透過特殊的指令選項來控制 command 的行為,指令可以有多個 # 指令選項解釋: # exec-when-start fileboy啟動就緒後,自動執行一次 'exec' 定義的命令 - exec-when-start # should-finish 觸發執行 'exec' 時(C),如果上一次的命令(L)未退出(還在執行),會等待 L 退出(而不是強制 kill ),直到 L 有明確 exit code 才會開始執行本次命令。 # 在等待 L 退出時,又有新事件觸發了命令執行(N),則 C 執行取消,只會保留最後一次的 N 執行 # ignore-stdout 執行 'exec' 產生的 stdout 會被丟棄 # ignore-warn fileboy 自身的 warn 資訊會被丟棄 # ignore-info fileboy 自身的 info 資訊會被丟棄 # ignore-exec-error 執行 'exec' 出錯仍繼續執行下面的命令而不退出 #- should-finish #- exec-when-start - ignore-warn
參考:https://www.workerman.net/a/1343