使用 -s 重新加载 args 领事模板窗口在文件夹中执行 nginx exe



我正在使用适用于Windows的Consul Template V0.19.0,用于渲染nginx负载平衡配置。它正在按预期工作。

现在我想要领事模板,在带有 args (-s 重新加载( 的文件夹中执行 nginx exe,如下所示:-

案例1:

template {
source = "Template/template.ctmpl"
destination = "F:\IDE\Visual Studio Collection\Web Servers\nginx-
1.12.0\nginx-1.12.0\conf\nginx.conf"
command = "F:\IDE\Visual Studio Collection\Web Servers\nginx-
1.12.0\nginx-1.12.0\nginx -s reload"
command_timeout = "60s"
}

但它抛出错误,如"无法执行命令"F:\IDE\Visual Studio Collection\Web Serversginx-1.12.0ginx.exe"来自"Template/template.ctmpl"=>"F:\IDE\Visual Studio Collection\Web Serversginx-1.12.0ginx-1.12.0\confginx.conf":child:exec:"F:IDEVisual":文件不存在"。

案例 2:-目前我已经通过将 nginx 作为服务(使用 nssm(并给出如下命令来实现这一点,

command = "powershell restart-service nginx" 

而不是给出完整路径,后跟"-s 重新加载"。

但为此,必须使用nssm等应用程序将nginx作为服务。

我可以知道,有没有办法告诉领事模板配置中的命令属性,"像案例 1一样在文件夹中执行 nginx exe"?

谢谢。

试试这个

template {
source = "Template/template.ctmpl"
destination = "F:\IDE\Visual Studio Collection\Web Servers\nginx-
1.12.0\nginx-1.12.0\conf\nginx.conf"
command = ""F:\IDE\Visual Studio Collection\Web Servers\nginx-
1.12.0\nginx-1.12.0\nginx" -s reload"
command_timeout = "60s"
}

如果这不起作用,请尝试以下选项也用于命令

command = ""F:/IDE/Visual Studio Collection/Web Servers/nginx-
1.12.0/nginx-1.12.0/nginx" -s reload"

command = ""F:\\IDE\\Visual Studio Collection\\Web Servers\\nginx-
1.12.0\\nginx-1.12.0\\nginx" -s reload"

编辑-1

因此,根据讨论,您的nginx配置似乎具有基于相对文件夹的配置。当nginx从一个文件夹启动时,它也需要从同一个文件夹重新加载。因此,您需要更改为文件夹,然后执行重新加载命令。您应该尝试的两种格式是

command="cd '<NGINX FOLDER PATH>' && nginx -s reload"

command="cmd /k 'cd '<NGINX FOLDER PATH>' && nginx -s reload'"

相关内容

  • 没有找到相关文章

最新更新