2010-10-11 2 views
9

Вот часть моего nginx.conf:я потерял nginx.pid, он исчез

pid  /www/nginx0836/nginx.pid; 

В то время как я перезапустить Nginx, в течение нескольких секунд я бегу ls /www/nginx0836 и перечисляет nginx.pid. Но через несколько секунд, опять ls /www/nginx0836, nginx.pid нет в списке. Почему? Кстати, Nginx сервер работает хорошо, и когда я бегу

ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}' 

, то я могу видеть Nginx PID.

+0

У меня точно такая же проблема на платформе Centos с использованием nginx/1.0.9. – niwo

+1

Вы действительно используете /www/nginx0836/nginx.pid, или это действительно где-то под/var? CentOS «помогает» очищает некоторые каталоги под/var с интервалом (/ var/run приходит на ум), и это может быть то, что вас кусает. –

+0

Попробуйте запустить strace на запущенном процессе NGinx. Вы можете вывести журнал strace, например,/tmp и пройдите дальше, чтобы узнать, что происходит с Nginx (если это действительно происходит от nginx). Если нет, то у вас есть что-то от внешнего вмешательства в ваш файл pid. –

ответ

1

попробуйте следить за папкой с помощью incrond и вносить в журнал любые изменения с помощью $ # $ @ в этом каталоге. Возможно, вы увидите что-то вроде кукольной или rsync, удаляющей файл pid.

/www/nginx0836 IN_DELETE echo "$# [email protected]" 

он будет регистрировать любое событие удаления в каталоге

проще, чем аудит ...

жаль бедных английский

-2

Try конфигурации по умолчанию для Nginx, вы найдете подобную проблему here

Смежные вопросы