如果nginx配置正在运行,如何重新加载,如果它已经停止,则启动它?

时间:2017-01-14 12:52:48

标签: linux nginx

我定期更新nginx配置文件,由于技术问题,有时可能会发生nginx未运行。

在这种情况下,如果我运行nginx -s reload,我会看到此错误:

  

nginx:[error] open()“/ run / nginx.pid”失败(2:没有这样的文件或目录)

如果nginx配置正在运行,我该如何重新加载nginx配置?如果没有看到该错误,如果它没有运行,我怎么能启动?

1 个答案:

答案 0 :(得分:0)

如果您不能指望nginx已经运行,那么您应该重新启动它。但是,如果你真的想要上述内容,假设你在linux / unix上运行,看起来你就可以创建一个小的shell脚本了。再次,假设您的默认shell是bash或bash兼容(其他shell必须移植),您可以执行以下操作:

#!/bin/sh

if [ -f /run/nginx.pid ]; then
   /path/to/nginx -s reload
else
   /path/to/whatever/command/starts/nginx
fi

您可以使用inotify将上述内容提升到一个全新的水平。同样,假设您正在运行Linux发行版,您可以安装操作系统发行版的inotify-tools包,并在每次配置文件更改时自动运行上述脚本文件。有关使用inotify的更多信息,请参阅此内容:

How to execute a command when a file changes