upgrading binary
Igor Sysoev
is at rambler-co.ru
Wed Sep 5 17:29:15 MSD 2007
On Wed, Sep 05, 2007 at 02:06:58PM +0300, Riku R?is?nen wrote:
> I'm asking this again since I haven't found the solution yet. (It's
> fine as long as my servers stay up and the old binary runs..)
>
>
> I've been trying to upgrade my nginx by sending the USR2 (as root and
> nginx) signal to it without any success.
>
> error log:
>
> 2007/08/30 17:36:04 [notice] 15169#0: signal 12 (SIGUSR2) received,
> changing binary
> 2007/08/30 17:36:04 [notice] 15169#0: changing binary
> 2007/08/30 17:36:04 [alert] 27578#0: execve() failed while executing
> new binary process "nginx" (13: Permission denied)
> 2007/08/30 17:36:04 [notice] 15169#0: start new binary process 27578
> 2007/08/30 17:36:04 [notice] 15169#0: signal 17 (SIGCHLD) received
> 2007/08/30 17:36:04 [notice] 15169#0: new binary process 27578 exited
> with code 1
>
> nginx binary is executable and owned by root.
>
> I've tried chowning the binary to nginx:nginx (the user/group defined
> in nginx.conf) and it doesn't help.
>
> What does the error permission denied mean? What am I doing wrong?
It seems that you use Linux (SIGCHLD is signal 17).
Linux man says:
EACCES Search permission is denied on a component of the path prefix of
filename or the name of a script interpreter. (See also
path_resolution(2).)
EACCES The file or a script interpreter is not a regular file.
EACCES Execute permission is denied for the file or a script or ELF
interpreter.
EACCES The file system is mounted noexec.
However, it seems they are not your case.
Try to run nginx via full path, e.g. /usr/local/sbin/nginx
By default nginx deletes all enviroment variables except TZ, so
there is not PATH variable and execve can not find "nginx". However,
ENOTENT error should be in this case.
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list