Nginx üzerinde hiçbir değişiklik gerçekleştirmeden rutin kontrollerim sırasında günlüklerde aşağıdaki satırları gördüm.
Google üzerinde elle tutulur herhangi düzgün sonuca ulaşamadığım için direk olarak geliştiricilere ve topluluğa mail attım cevabın gelmesi biraz sürecek lakin ben genede kendi bulduğum ilginç çözümü paylaşmak istiyorum.
2018/06/20 02:02:31 [warn] 24588#24588: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
2018/06/20 02:02:31 [emerg] 24588#24588: open() "/run/nginx.pid" failed (13: Permission denied)
Uzunca bir aramadan ve doküman kurcalamadan sonra somut bir sonuca ulaşamadığımdan bahsetmiştim. Bu yüzden gecenin bi vakti aşağıdaki tweeti’de atmaktan çekinmedim.
Nginx’de ilk defa loglar’da ilginç bir çıktı ile karşılaştım. Her şey prosedürüne uygun ama gel gör ki bunu görmek beni huzursuz etti.https://t.co/VChm4tc84B pic.twitter.com/cMZgKpmxdA
— Mertcan GÖKGÖZ (@mertcangokgoz) 19 Haziran 2018
Belki birileri daha önceden denk gelmiştir. Yardımcı olabilir diye düşündüm. Twitter üzerinden Güray’ın destekleride bu çözüme ulaşmam da etkili oldu. İlk başta sunucuyu yeniden başlatmak iyi gelebilir diye düşündüm sistemde herhangi bir sorun veya yeniden başlatma gerekecek durum olmadığı için direk olarak bunu yapmaktan vazgeçtim.
İşlemlerine ve durumuna bakmam gerekiyordu. Sonuçta permission dediğini biliyordum. Kullanıcı izinleri yada dizinlerle alakalı olduğunu düşündüğüm içinde çalışan işlemde buna bakmalıydım. Hemen aşağıdaki işlemi gerçekleştirdim.
root@v3-main ~ # ps -ef | grep nginx
root 7731 1 0 02:48 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 7732 7731 0 02:48 ? 00:00:00 nginx: worker process
www-data 7738 7731 0 02:48 ? 00:00:00 nginx: worker process
www-data 7739 7731 0 02:48 ? 00:00:00 nginx: cache manager process
root 9620 10213 0 02:54 pts/0 00:00:00 grep nginx
Herşey normal gözüktüğünü anlamamız zor olmuyor. Ana işlemimiz kök kullanıcısı ile açıldı bu olağan bir durum. İşçiler ise www-data kullanıcısı ile otomatik oluşturlacaktı. Ayrıca FastCGI Cache için önbellek kontrolüde gene aynı kullanıcı ile çalışması gerekiyordu.
Belki systemd sapıtmıştır güvenlik güncellemesi gelmiştir. Birşeyler olmuştur diye aşağıdaki komutu verdim.
systemctl daemon-reload
Çözüm olmadı tabi olamazda. Hiç değilse daemonları yenilemiş olduk. Gelelim en can alıcı çözümü bana getiren duruma. İlk önce systemd ile işlem yapmayacağız. Eski usüller ile devam edeceğiz. Init bu aşamada bizi kurtardı diyebilirim.
Sırasıyla aşağıdaki işlemleri gerçekleştirdim. Belki geçici bir çözüm belkide kalıcı bilemiyorum. Ancak sorunumu çözdüğü kesin. İlk önce nginx’e ait ne kadar işlem varsa öldürüyorum.
pkill nginx
Bu işlemi yaptıktan sonra haliyle bağlantı kapatılacak, siz servisi çalıştırana kadar gelmeyecek. Bu arada biraz dinlenin ve kendinize bir çay veya kahve koyun. 2-3 Dakikalık bir downtime’dan kimseye bir zarar gelmez. Hemen ardından servisi tekrar çalıştırıyoruz.
sudo /etc/init.d/nginx start
Bu komuttan hemen sonra site kaldığı yerden çalışmaya, ziyaretçilerinize hizmet vermeye devam edecek. Logları tekrar kontrol ettiğimizde ise artık böyle bir durumla karşılaşmadığınızı fark edeceksiniz.