说明
on 在指定事件触发时执行命令。这对于在服务器启动时通过运行脚本或启动后台进程来准备提供服务很有用,或者在服务器退出时停止服务很有用。
每个被执行的命令都是阻塞的,除非你在命令后缀添加一个空格和 &,这将导致命令在后台运行。(在服务器退出时不要这样做,否则命令可能在它的父进程退出之前完成。)命令的输出和错误将分别转到标准输出和标准错误。没有标准输入。
每个命令只会执行一次,即在 Corefile 中出现一次。换句话说,即使此指令由多个区域共享,每个命令也只会根据在 Corefile 中出现的次数执行一次。
请注意,如果 CoreDNS 被强制终止,则对关闭事件计划的命令不会执行,例如,通过使用操作系统提供的“强制退出”功能。然而,典型的 SIGINT (Ctrl+C) 将允许关闭命令执行。
语法
on EVENT 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" &