upgrading binary failed - execve - too long argument list

Francis Daly francis at daoine.org
Wed Apr 28 12:16:54 UTC 2021

On Tue, Apr 27, 2021 at 12:35:58PM +0200, Charlie Kilo wrote:

Hi there,

I don't know the answer here, but...

> i'm trying to upgrade an nginx-binary while running.
> When i do kill -s USR2 <pid>, i get the following error in the logs..
> 11:40:38 [alert] 52701#0: execve() failed while executing new binary
> process "/opt/sbin/nginx" (7: Argument list too long)

https://wiki.debian.org/CommonErrorMessages/ArgumentListTooLong (last
modified in 2009) says that that happens when execve() "is unable to
fit the supplied argument list and environment into the 128K buffer".

> Anybody knows what exactly is in those arguments ? We have ~ 20-55 worker
> processes if that might be related..

Does "ps -ef" (possibly "| grep nginx") show the arguments involved?

And, with the right permissions,

wc -c /proc/*/environ 2>/dev/null | sort -rn | less

can show you the size of each process environment that you can read. If
you know the process id (PID) involved, you can just "wc -c" that one

That might hint at whether there is actually something very big involved,
or whether something else has gone wrong and the wrong error message is
being reported.

Good luck with it,

Francis Daly        francis at daoine.org

More information about the nginx mailing list