LoginSignup
6
6

More than 5 years have passed since last update.

CentOS 7上のnginxで終了時にUNIXソケットが削除されない問題

Last updated at Posted at 2015-11-17

CentOS 7上にnginxをnginxリポジトリからインストールし、Unixソケットを使った場合、nginxを終了した際にUnixソケットが削除されず、nginxが再起動されないトラブルが発生します。

環境

  • CentOS 7
  • nginxリポジトリからインストールしたnginx 1.8.0 (※CentOS標準のリポジトリからインストールしたものに同様の問題があるかは調べていません)

原因

原因はsystemdのUnit設定ファイル(/usr/lib/systemd/system/nginx.service)に定義されている終了処理で

ExecStop=/bin/kill -s QUIT $MAINPID

と記述されているのですが、SIGQUITではUnixソケットが削除されず、次回起動時にソケットファイルが存在するため「Address already in use」のエラーとなり起動しなくなります。

解決方法

ExecStop=/bin/kill -s TERM $MAINPID

のように書き換えることでこの問題は解決します。
書き換えた後のnginx.serviceファイル

参考文献

Nginx leaves old socket – StackExchange

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6