2012-01-13 22 views
12

Tôi đã cài đặt máy chủ Ubuntu 11.04 i386 với nginx 1.0.11 được cài đặt. Ngoài ra, tôi đang sử dụng this init.d script, người duy nhất tôi đã tìm thấy ở nhiều nơi khác nhau. Tuy nhiên, máy chủ khởi động máy chủ độc đáo khi dừng/đặt lại máy chủ nóiNginx daemon dừng không thành công

* Stopping Nginx Server...  [fail] 

Tất nhiên, daemon không bị dừng và khi khởi động lại cấu hình không được tải lại.

Tôi làm cách nào để sửa lỗi này?

Trả lời

28

Có khả năng nó không thể giết quá trình.

Mở tập lệnh nginx nằm trong /etc/??.d/nginx và tìm nơi nginx.pid được cho là. Nó sẽ giống như "/var/run/nginx.pid".

Nếu tệp pid không có ở đó, hãy mở nginx.conf và tìm kiếm cài đặt pid. Nếu nó không khớp - hãy đặt giá trị conf cho vị trí của tập lệnh, ví dụ:

# pid of nginx process 
pid /var/run/nginx.pid; 
+2

đối với tôi, đó là '/ run/nginx.pid' trong nginx.conf mà tôi đã thay thế bằng '/ var/run/nginx.pid' và nó hoạt động. cảm ơn! –

+0

trong vấn đề của tôi là dấu ngoặc kép cho đường dẫn đó –

+0

Cảm ơn - Tôi đã nhìn thấy tệp pid trong cả hai thư mục, nhưng thay đổi init và nginx.conf để trỏ đến thư mục 'var' thay vì giải quyết cùng một vấn đề trên tập lệnh dừng/khởi động lại của tôi . – Scott

5

sudo service nginx restart sẽ cung cấp cho bạn một cái gì đó như thế này:

Stopping nginx:           [FAILED] 
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] still could not bind() 

sau đó giết chết quá trình tự do cảng của họ:

sudo fuser -k 80/tcp (hoặc sử dụng bất cứ cổng bạn đang sử dụng)

cách khác , giết các quy trình theo ID của chúng:

ps -ef |grep nginx 
kill <pid> 
1

Tôi đã gặp phải các sự cố tương tự.

Nói chung tôi sử dụng apache/apache2.

Sau đây có thể giúp bạn:

sudo nginx -s stop | ps -ef | grep nginx | awk {'print $2'} | xargs sudo kill -9 | sudo service apache2 start 

Đối với tài liệu vui lòng tham khảo này Github Gist

+0

Nó làm việc cho tôi. Cám ơn vì đã chia sẻ. –

3

thử lệnh này:

sudo fuser -k 80/tcp 
Các vấn đề liên quan