Điểm:0

Làm cách nào để tắt Node.js đang chạy trên Apache/CentOS/Plesk?

lá cờ br

Hy vọng rằng câu hỏi này có câu trả lời chung cho Apache và Node.js, và không dành riêng cho Plesk (vì tôi biết bạn cảm thấy thế nào về các câu hỏi dành riêng cho Plesk!).

Gần đây, tôi đã quyết định thêm một số thông báo bằng tin nhắn văn bản vào ứng dụng máy chủ Node.js, khi một bản cập nhật cụ thể được phát hiện. Trong khi tôi đang ở đó, tôi nghĩ rằng cũng nên thêm thông báo khởi động và tắt máy chủ. Điều này dẫn đến một vài khám phá khó chịu:

  1. Khoảng 24 giờ một lần, máy chủ của tôi (không phải toàn bộ nền tảng máy chủ, chỉ một ứng dụng máy chủ Node.js này) lại khởi động lại mà không có lý do chính đáng, trong khoảng thời gian từ 3:30-4:30 sáng.
  2. Không có phát hiện tắt máy trước mỗi lần khởi động lại, vì vậy có vẻ như ứng dụng Node.js đã bị tắt hoàn toàn, không được gửi SIGINT hoặc SIGTERM mà tôi đang lắng nghe.
  3. Ngay cả khi sử dụng (ho) bảng điều khiển, nơi bạn có thể yêu cầu khởi động lại ứng dụng, quá trình khởi động lại chậm sẽ không xảy ra. Ứng dụng Node.js bị giết một cách đơn giản.

Nút khởi động lại ứng dụng Node.js

Việc khởi động lại một lần trong 24 giờ, sau một số cuộc điều tra, dường như được kích hoạt bởi vòng quay nhật ký Apache. Tại sao việc quay nhật ký đơn giản lại gây ra điều này là một bí ẩn khác cần được giải đáp.

Trong thời gian chờ đợi, tôi muốn biết liệu có cách nào để đảm bảo việc tắt máy DỄ DÀNG xảy ra hay không, cho dù chúng xảy ra do Apache đang dừng hoặc tắt hay do nút "Khởi động lại ứng dụng" được nhấn.

Tôi tìm kiếm sự tắt máy bằng cách theo dõi các tín hiệu sau:

process.on('SIGINT', tắt máy);
process.on('SIGTERM', tắt máy);
process.on('SIGUSR2', tắt máy); // Được sử dụng bởi các công cụ dev của tôi

Có một tín hiệu khác tôi nên kiểm tra? Thay vào đó, quá trình có bị tắt không thương tiếc bằng SIGKILL không? Nếu vậy, tôi có thể thay đổi điều đó không, có lẽ với một số loại chậm trễ để tắt máy một cách duyên dáng trong một thời gian?

Michael Hampton avatar
lá cờ cz
Bạn đã kiểm tra nhật ký ứng dụng của mình chưa?
kshetline avatar
lá cờ br
Tôi không thể thấy gì hữu ích ở đó, trừ khi tôi không biết nhật ký phù hợp để xem. Trong nhật ký Apache, tôi không thấy gì. Trong `/var/log/httpd/error_log`, nơi tất cả đầu ra của Node.js đi qua (cho dù đó là từ thiết bị xuất chuẩn hay thiết bị xuất chuẩn), tất cả những gì tôi thấy là Node.js của tôi đang chạy vui vẻ, sau đó khởi động lại mà không có một gợi ý nào về lý do tại sao nó cần khởi động lại.
Michael Hampton avatar
lá cờ cz
Tôi nghĩ rằng có rất ít vào thời điểm này mà chúng ta có thể làm. Bạn sẽ cần tìm hiểu xem Plesk đang làm gì, khi bạn nhấp vào nút khởi động lại đó hoặc bất cứ điều gì nó làm lúc 3:30 sáng, rất có thể là cả hai.
kshetline avatar
lá cờ br
Tôi không chắc liệu vấn đề này có phải là vấn đề cụ thể của Plesk hay không, hoặc liệu có thể có một triển khai tiêu chuẩn để sử dụng Node.js với Apache hay không và lời khuyên chung liên quan đến Apache. Tôi đã đăng một vài ngày trước talk.plesk.com, và cho đến nay... dế!
kshetline avatar
lá cờ br
Khi tôi nhập 'plesk' làm thẻ cho bài đăng này, có một cảnh báo cho thẻ đó rằng hầu hết các câu hỏi về Plesk thuộc về webmasters.stackexchange.com. Tuy nhiên, câu hỏi tương tự ở đó đã bị đóng do lạc đề, vì vậy tôi hy vọng ai đó có thể trợ giúp ở đây. Diễn đàn Plesk đã chết lặng về vấn đề này.
Michael Hampton avatar
lá cờ cz
Không có cách tiêu chuẩn nào để bắt đầu ứng dụng Node.js. Bạn sẽ phải tìm hiểu xem Plesk làm điều đó như thế nào và đó không phải là điều chúng tôi có thể trợ giúp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.