open() "/run/nginx.pid" failed (13: Permission denied)

Currently, I've set up a nextcloud server with nginx and I enabled it with sudo systemctl enable nginx.service. When I'm rebooting, than I'm getting an error message which complains about a proxy server and if I take a look into sudo systemctl status nginx.service, than I'm getting this:

nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/etc/systemd/system/nginx.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Sat 2020-11-14 12:20:55 CET; 16min ago

Nov 14 12:20:55 TORNAX-ARCH systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 14 12:20:55 TORNAX-ARCH nginx[473]: 2020/11/14 12:20:55 [warn] 473#473: could not build optimal types_hash, you should increase either types_hash_max_size: 1024 or types_hash_bucket_si>
Nov 14 12:20:55 TORNAX-ARCH nginx[473]: 2020/11/14 12:20:55 [emerg] 473#473: bind() to 192.168.178.35:443 failed (99: Unknown error)
Nov 14 12:20:55 TORNAX-ARCH systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Nov 14 12:20:55 TORNAX-ARCH systemd[1]: nginx.service: Failed with result 'exit-code'.
Nov 14 12:20:55 TORNAX-ARCH systemd[1]: Failed to start A high performance web server and a reverse proxy server.

If I run nginx -t than I'm getting this:

2020/11/14 12:37:40 [warn] 68391#68391: could not build optimal types_hash, you should increase either types_hash_max_size: 1024 or types_hash_bucket_size: 64; ignoring types_hash_bucket_size
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2020/11/14 12:37:40 [emerg] 68391#68391: open() "/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

When I'm looking for a solution about this open() "/run/nginx.pid" failed (13: Permission denied) error, than I'm only getting solutions for docker + nginx like these posts:

  • https://stackoverflow.com/questions/57427162/nginx-emerg-open-var-run-nginx-pid-failed-13-permission-denied
  • https://stackoverflow.com/questions/64393237/nginx-emerg-open-run-nginx-pid-failed-13-permission-denied
  • https://dockerquestions.com/2020/10/16/nginx-emerg-open-run-nginx-pid-failed-13-permission-denied/
  • https://github.com/Wonderfall/dockerfiles/issues/40

It works after restarting manually the service with sudo systemctl restart nginx.service but I'm still getting the open() "/run/nginx.pid" failed (13: Permission denied) when I'm running nginx -t.

What am I doing wrong or what can I do in order to solve this problem?


It may be a bug. "This behavior is a known bug, caused by a race condition between nginx and systemd. Systemd is expecting the PID file to be populated before nginx had the time to create it." https://www.cloudinsidr.com/content/heres-fix-nginx-error-failed-read-pid-file-linux/


sudo nginx -t

This comment should have been an answer imo.

Run nginx -t as root. This is a red herring. – Michael Hampton Nov 15 at 0:27