【解決済】nginxで再起動や起動出来ない
【解決済み】nginxで再起動や起動できない場合について
nginxさんは、たまに思わぬところで倒れてくれる 今回、久しぶりに自社サーバー内の調整を行った際に多分1年前位に同じ体験をしたが すっかり対応後頭の片隅から消えてしまっていた対処法を覚書的な感じで残しておこうかと思います。
まず、何で躓いたかというと
nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
このnginx.pidが、初めはrunで頑張ってnginx.pidが走ってるけど、止めるときに呼び出す番号知らないんだよね。。。って事で、
nginx -s reload
するとエラーで再起動してくれないという現象が発生しました。
そこで、安易にじゃあファイル消しちゃえばいいんじゃ・・・
なんて考えて消したら いやぁ~この場所にnginx.pidさんが走ってるはずなんだけど、ファイルが見つからないんだよね。。。 って、そりゃ先ほど私消したんで無いですね!となりました。
(安易に消した自分を、すごく怒ってやりたかったですよ。)
そこで、では対象になるプロセスを止めてやればいいんじゃ?と思い
ps -ef | grep nginx
でプロセスを参照し、kill -KILL 13253(プロセス番号)
nginx:masterを止めてみました。
それから、再起動コマンドをど~~ん!! 。 。 。 でも、やっぱり駄目
そ こで、一度nginxを止めてみました。
systemctl stop nginx
して、service nginx status
でステータスを確認
やっぱり、active: failedとなっており動いてません。
まぁ、先ほど止めてるんで当たり前なんですけどね! そこで、思い出しました。
そういえば、ポート80で衝突して再起動の妨げになっていたことが過去にあったなと・・・ /sbin/fuser -n tcp 80
でポート80を確認したら、やはり何か稼働している /sbin/fuser -kn tcp 80
で一度すべて終了させて、nginxさんをスタート!!
すると、問題なく起動した模様! 安易な気持ちで消してしまった、nginx.pidさんも復活している! その後、nginx -s reload
をしてもエラーは出ない。 問題なく使えるようになりましたとさ!
■要約
・一度nginxを止める。
・killコマンドでマスターを鎮める
・ポート80を開放する
・nginxを起動する
この流れで、簡単に復活できるのではないでしょうか?
とはいえ、今回彷徨ったのちの解決なので、じゃっかんモヤっとした感じはありますが
この覚書が役に立っていれば幸いです!
google先生で探しても英文のみが多いので 日本語の記事は少ないのかもですね!