描述
on 會在觸發指定事件時執行命令。這對於準備服務網站非常有用,例如在伺服器啟動時執行腳本或啟動背景程序,或在伺服器退出時停止它們。
每個執行的命令都是阻塞式的,除非您在命令後加上一個空格和 &,這將使命令在背景執行。(當伺服器退出時不要這樣做,否則命令可能在其父程序退出之前無法完成。)命令的輸出和錯誤分別會傳送到標準輸出和標準錯誤。沒有標準輸入。
一個命令在 Corefile 中每次出現只會執行一次。換句話說,即使這個指令被多個區域共享,一個命令在 Corefile 中每次出現也只會執行一次。
請注意,如果 CoreDNS 被強制終止,例如使用作業系統提供的「強制結束」功能,則排定在關機事件執行的命令將不會執行。但是,典型的 SIGINT(Ctrl+C)將允許執行關機命令。
語法
on EVENT COMMAND
EVENT 是要執行 COMMAND 的事件名稱(請參閱下面的列表)。COMMAND 是要執行的命令;它可以後面跟著參數。
事件
命令可以在以下事件觸發時執行
startup
- 伺服器實例正在啟動或正在啟動shutdown
- 伺服器實例正在關閉(而不是重新啟動)
範例
在伺服器開始監聽之前啟動 php-fpm
on startup /etc/init.d/php-fpm start
當伺服器退出時停止 php-fpm
on shutdown /etc/init.d/php-fpm stop
在 Windows 上,當命令路徑包含空格時,您可能需要使用引號
on startup "\"C:\Program Files\PHP\v7.0\php-cgi.exe\" -b 127.0.0.1:9123" &