重启了linux服务器之后,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误nginx: [error] open() "/alidata/server/nginx/logs/nginx.pid" failed (2: No such file or directory),这应该是因为把nginx进程杀死后pid丢失了,下一次再开启nginx -s reload时无法启动,重装可以解决这个问题,但是太麻烦了。

 issued a nginx -s stop and after that I got this error when trying to reload it.

[error]: invalid PID number "" in "/var/run/nginx.pid"

That /var/run/nginx/pid file is empty atm.

What do I need to do to fix it?

 

nginx -s reload is only used to tell a running nginx process to reload its config. After a stop, you don't have a running nginx process to send a signal to. Just run nginx (possibly with a -c /path/to/config/file)

方法很简单:

1.首先你要先确保关闭nginx进程了(可以通过pkill -9 nginx关闭进程)

2.进入你nginx的安装目录里面 cd `路径/nginx/sbin`里面 然后输入

>nginx/sbin/nginx -c nginx/conf/nginx.conf 就可以了(sbin目录下面有个nginx为启动程序,-c为以什么配置启动,后面接着nginx配置文件的路径)