Hello! 2013/7/3 Jones Zhong: > 已经将nginx的设置为nobody也可以操作了,reload是没有问题的,但是-s stop后再启动却无法出来,一直报的错误是80端口被占用。 > 感觉陷入逻辑死循环,lua脚本未执行完nginx就不会退出,然后lua执行完,那个start信号也已经没有了。 > 求助看是否有可能实现这样的逻辑?谢谢。 > 可以使用 nginx 的 binary upgrade 特性,见这里的文档: http://wiki.nginx.org/CommandLine#Upgrading_To_a_New_Binary_On_The_Fly 简单说来,就是给当前的 master 发 USR2 信号,然后再给同一个 master 发 QUIT 信号(注意不要给新起来的 master 进程发信号)。 Best regards, -agentzh
Hello! 2013/7/4 Jones Zhong: > 但是由于是woker是通过SUID提权来操作master的。 > kill无法发出信号,再次求助下,要如何去发这个信号? > 你显然需要有发信号的权限。另一种做法是专门运行一个 daemon 服务来替你专门发信号,然后你的 nginx worker 进程向这个 daemon 服务发指令(比如通过 tcp 或者 unix domain socket 进行通信)。 Best regards, -agentzh