关于NGINX使用systemctl启动时报错

使用systemctl start nginx时出现pid文件不可读的问题,其中报错的内容中有如下内容:

PID file /opt/nginx/log/nginx.pid not readable (yet?) after start


最开始对这个错误感觉很是莫名其妙,看配置文件都是正常的,而且直接使用sbin/nginx启动是没问题。

怀疑是权限问题,就把/opt/nginx/logs目录从root改成了nobody发现还是不行。


纠结了几天,直到今天突然发现报错的pid位置是/opt/nginx/log/,直接使用sbin/nginx运行的话pid的目录是/opt/nginx/logs/,实际的目录位置logs比报错的log多了一个字母s。


然后修改

/usr/lib/systemd/system/nginx.service

文件里面的pid文件位置为 PIDFile=/opt/nginx/logs/nginx.pid,再使用systemctl启动nginx时就能正常启动了。


具体文件内容如下:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target




提交评论