I’m running nginx 1.0.0 on a MacOS X machine, installed with brew, and
when I launch nginx, even with sudo, I get the following warning in my
log file over and over again:
4/21/11 2:03:42 AM org.nginx[3788] nginx: [warn] the “user” directive
makes sense only if the master process runs with super-user privileges,
ignored in /usr/local/etc/nginx/conf/nginx.conf:2
From nginx.conf:
user jschuur staff;
I’m already launching nginx with sudo, since I want the thing to listen
on port 80. Shouldn’t that be enough to give it the proper super user
privileges?
Running ‘sudo id’ confirms the effective UID is 0 and from nginx.c in
the source, it does a ‘if (geteuid() != 0)’ before the error message in
question.
Some additional info here and I think I’ve clarified that this isn’t an
nginx codebase issue: After a ‘sudo nginx -s quit’ and confirming that
no more nginx processes were running or local web sites could be
accessed, I was still seeing entries to the log file made, both warning
me about the user directive and another permission issue:
I wasn’t sure what else could be writing to the nginx log file
directory, since neither the Activity Monitor nor ‘ps -ax | grep nginx’
showed any nginx process running.
Then I looked at the org.nginx.plist LaunchAgent that starts up nginx
and saw that it had KeepAlive set to true, suggesting it was in charge
of restarting nginx. I guess I was mistaken in the ps option I used to
find all processes. The relaunch probably happened under a different
user ID, generating the errors.
I’ll take things up with the author of this plist (which came with
brew).
One final update, incase anyone else runs across this issue: The problem
boiled down to the launchd script in question being installed into the
~/Library/LaunchAgents directory. Because config files from the user’s
own LaunchAgent directory will cause the process to be run under that
user’s ID and not root, every 10 seconds an attempt was made to restart
nginx, and it failed, writing to the same error log that my manual
restarts from the command line with sudo did. I was mistaking them for
something generated by my sudo commands.
I never saw the extra nginx processes, because they exited out too fast
for me to catch them.
Posted at Nginx Forum:
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.