第一次重新加载后:"nginx: [error] open() "/var/run/nginx.pid“失败(2:没有那个文件或目录)”
After the first reload: "nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)"
使用我应用的 Salt 声明安装 运行 NGINX (1.14.0-0ubuntu1.7) 作为服务。服务的状态是活动的,但 systemctl reload nginx
一直失败,因此无法应用更新的配置。
完整日志:
systemd[1]: nginx.service: Can't open PID file /run/nginx.pid (yet?) after reload: No such file or directory
systemd[1]: Reloaded A high performance web server and a reverse proxy server.
systemd[1]: Reloading A high performance web server and a reverse proxy server.
nginx[18095]: nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Reload failed for A high performance web server and a reverse proxy server.
systemd[1]: Reloading A high performance web server and a reverse proxy server.
nginx[1209]: nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Reload failed for A high performance web server and a reverse proxy server.
我认为在这种情况下的主要问题是 NGINX 服务在需要的 /etc/nginx/nginx.conf
被放置之前就已经启动了。在我看来,此命令导致 NGINX 搜索 nginx.conf 中定义的 PID 文件,但 PID 位置策略在启动期间不同,因此 PID 文件未在重新加载服务预期的位置定义。
然而,service.running 观看 file: /etc/nginx/nginx.conf
。但这还不够,因为服务的第一次启动发生在默认 nginx.conf
.
包安装之后
综上所述,解决方案是在包安装之前放置 /etc/nginx/nginx.conf
和不同的 pid
指令(如果安装包确保所有 NGINX 进程都被杀死,用需要 nginx.conf
或 [小心,备份配置...] 完全删除禁用服务和删除配置的包)。在 Salt Stack 的情况下,将 - require_in: pkg: nginx
(nginx
这里是包安装状态的名称)放入管理 /etc/nginx/nginx.conf
.
的状态
使用我应用的 Salt 声明安装 运行 NGINX (1.14.0-0ubuntu1.7) 作为服务。服务的状态是活动的,但 systemctl reload nginx
一直失败,因此无法应用更新的配置。
完整日志:
systemd[1]: nginx.service: Can't open PID file /run/nginx.pid (yet?) after reload: No such file or directory
systemd[1]: Reloaded A high performance web server and a reverse proxy server.
systemd[1]: Reloading A high performance web server and a reverse proxy server.
nginx[18095]: nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Reload failed for A high performance web server and a reverse proxy server.
systemd[1]: Reloading A high performance web server and a reverse proxy server.
nginx[1209]: nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Reload failed for A high performance web server and a reverse proxy server.
我认为在这种情况下的主要问题是 NGINX 服务在需要的 /etc/nginx/nginx.conf
被放置之前就已经启动了。在我看来,此命令导致 NGINX 搜索 nginx.conf 中定义的 PID 文件,但 PID 位置策略在启动期间不同,因此 PID 文件未在重新加载服务预期的位置定义。
然而,service.running 观看 file: /etc/nginx/nginx.conf
。但这还不够,因为服务的第一次启动发生在默认 nginx.conf
.
综上所述,解决方案是在包安装之前放置 /etc/nginx/nginx.conf
和不同的 pid
指令(如果安装包确保所有 NGINX 进程都被杀死,用需要 nginx.conf
或 [小心,备份配置...] 完全删除禁用服务和删除配置的包)。在 Salt Stack 的情况下,将 - require_in: pkg: nginx
(nginx
这里是包安装状态的名称)放入管理 /etc/nginx/nginx.conf
.