/etc/init.d/nginx以root身份重启失败,但是nginx -t不会告诉任何事情

时间:2016-04-21 13:51:10

标签: nginx

所以Nginx以守护进程模式启动,但是root,确认了这个命令:

root@test:/home/vagrant# ps -edf | grep nginx
root      7331     1  0 13:42 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  7333  7331  0 13:42 ?        00:00:00 nginx: worker process 

但如果我:

root@test:/home/vagrant# /etc/init.d/nginx restart
 * Restarting nginx nginx [fail]

但是当我跑步时:

root@test:/home/vagrant# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

只有当我回到用户vagrant时才会这样:

[13:46:58] vagrant@test:/home/vagrant $ nginx -t
2016/04/21 13:47:01 [emerg] 7390#7390: open() "/run/nginx.pid" failed (13: Permission denied)

如果我:

root@test:/home/vagrant# ls -l /run/nginx.pid
-rw-r--r-- 1 root root 5 Apr 21 13:45 /run/nginx.pid

那么为什么赢得nginx重启?我究竟做错了什么?我的意思是,root没有足够的许可没有意义,是吗?

为什么sudo nginx -t没有显示任何错误消息?

1 个答案:

答案 0 :(得分:0)

您的配置文件user www www;中有这个指令吗?

如果是,用户www(或您设置的对象)是否可以访问 pid文件网站目录

额外:如果需要,可以使用pid path;指令移动 pif文件