2010-10-11 52 views
9

Dưới đây là một phần của nginx.conf tôi:Tôi mất nginx.pid, nó biến mất

pid  /www/nginx0836/nginx.pid; 

Trong khi tôi khởi động lại nginx, trong vài giây tôi chạy ls /www/nginx0836 và nó sẽ liệt kê nginx.pid. Nhưng sau vài giây, hãy chạy lại ls /www/nginx0836, nginx.pid không được liệt kê. Tại sao? Nhân tiện, máy chủ nginx hoạt động tốt và khi tôi chạy

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

thì tôi có thể thấy nginx pid.

+0

Tôi có cùng một vấn đề trên Hộp Centos bằng nginx/1.0.9. – niwo

+1

Bạn có thực sự sử dụng /www/nginx0836/nginx.pid, hoặc là nó thực sự ở đâu đó dưới/var? CentOS "helpfully" dọn dẹp một số thư mục dưới/var trong khoảng thời gian (/ var/run đến tâm trí) và điều này có thể là những gì đang cắn bạn. –

+0

Hãy thử chạy strace trên quá trình NGinx bắt đầu. Bạn có thể xuất nhật ký strace thành e.g./tmp và đi qua sau đó để xem những gì đang xảy ra Nginx khôn ngoan (nếu điều này thực sự đến từ nginx). Nếu không thì bạn có một cái gì đó từ bên ngoài giả mạo với tập tin pid của bạn. –

Trả lời

1

thử thư mục theo dõi với incrond và đăng nhập bất kỳ thay đổi nào với $ # $ @ trên thư mục đó. có thể bạn sẽ thấy một cái gì đó như con rối hoặc rsync xóa tập tin pid.

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

nó sẽ đăng nhập bất kỳ sự kiện xóa trên thư mục

đơn giản hơn kiểm toán ...

xin lỗi tiếng anh cấu hình mặc định

-2

Thử nghèo cho nginx, bạn sẽ tìm thấy vấn đề tương tự here