
ページコンテンツ
エラー内容
yum update後 systemctl restart nginx.serviceにて下記エラーが発生しました。
Can’t open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

nginxが利用できなくなり、本サイトも表示できなくなっていましたので、エラー解析と対策を行いました。
原因分析
systemctlではなく、下記コマンドで直接、nginxを起動することはできたので、systemctlにてエラーが発生しているように思われました。
/usr/sbin/nginx -c /etc/nginx/nginx.conf
対策
nginxのサービス設定「nginx.service」に問題がありそうなので、nginxのサービス設定「nginx.service」を確認してみました。
vi /usr/lib/systemd/system/nginx.service
「/var/run/nginx.pid」はシムリンクで、実態は「run/nginx.pid」となりますので。「/var/run/nginx.pid」を「run/nginx.pid」に変更してみます。
[Unit]
Description=nginx – high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/sh -c “/bin/kill -s HUP $(/bin/cat /run/nginx.pid)”
ExecStop=/bin/sh -c “/bin/kill -s TERM $(/bin/cat /run/nginx.pid)”
[Install]
WantedBy=multi-user.target
変更結果を確認するため、デーモンを再読み込みします。
systemctl daemon-reload
nginxを起動したところ、起動に成功しました。
systemctl start nginx.service
CentOS起動時に、自動でnginxが起動するように、下記設定をsystemctlにて行う。
systemctl enable nginx.service
関連記事
Linux以外のIT技術については、下記サイトにアクセスしてください。
気まぐれSE研究所(https://www.se-lab.yokohama/)