Score:0

ฉันจะปิด Node.js ที่ทำงานบน Apache/CentOS/Plesk ได้อย่างไร

ธง br

หวังว่าคำถามนี้จะมีคำตอบทั่วไปสำหรับ Apache และ Node.js และไม่เฉพาะเจาะจงสำหรับ Plesk (เพราะฉันรู้ว่าคุณรู้สึกอย่างไรกับคำถามเฉพาะของ Plesk!)

ฉันเพิ่งตัดสินใจเพิ่มข้อความแจ้งเตือนไปยังแอปเซิร์ฟเวอร์ Node.js เมื่อพบการอัปเดตเฉพาะ ในขณะที่ฉันทำอยู่ ฉันคิดว่ามันน่าจะเป็นความคิดที่ดีที่จะเพิ่มการแจ้งเตือนการเริ่มทำงานและปิดเซิร์ฟเวอร์ด้วย สิ่งนี้นำไปสู่การค้นพบที่ไม่พึงประสงค์บางประการ:

  1. ประมาณทุกๆ 24 ชั่วโมง เซิร์ฟเวอร์ของฉัน (ไม่ใช่ทั้งแพลตฟอร์มเซิร์ฟเวอร์ เพียงแค่แอปเซิร์ฟเวอร์ Node.js แอปนี้) เริ่มการทำงานใหม่โดยไม่มีเหตุผลที่ดี ระหว่างเวลา 3:30-4:30 น.
  2. ไม่มีการตรวจพบการปิดระบบอย่างสง่างามก่อนที่จะรีสตาร์ทแต่ละครั้ง ดังนั้นดูเหมือนว่าแอป Node.js กำลังถูกฆ่าทันที ไม่ได้ส่ง SIGINT หรือ SIGTERM ซึ่งฉันกำลังฟังอยู่
  3. แม้จะใช้ (ไอ) แผงควบคุมซึ่งคุณสามารถขอให้รีสตาร์ทแอปได้ การรีสตาร์ทอย่างสง่างามจะไม่เกิดขึ้น แอพ Node.js นั้นถูกฆ่าตายอย่างไม่มีพิธีรีตอง

ปุ่มรีสตาร์ทแอป Node.js

การรีสตาร์ท 1 ครั้งต่อ 24 ชั่วโมง หลังจากการสืบสวนบางอย่าง ดูเหมือนว่าจะทริกเกอร์โดยการหมุนเวียนบันทึกของ Apache เหตุใดการหมุนเวียนบันทึกอย่างง่ายจึงควรทำให้เกิดความลึกลับอีกอย่างหนึ่งที่ต้องแก้ไข

ในระหว่างนี้ ฉันต้องการทราบว่ามีวิธีใดที่จะทำให้แน่ใจว่าการปิดระบบของ GRACEFUL เกิดขึ้น ไม่ว่าจะเกิดขึ้นเพราะ Apache กำลังหยุดหรือปิดเครื่อง หรือเพราะปุ่ม "รีสตาร์ทแอป" ถูกกด

ฉันมองหาการปิดระบบโดยการตรวจสอบสัญญาณเหล่านี้:

process.on('SIGINT', ปิดเครื่อง);
process.on('SIGTERM', ปิดเครื่อง);
process.on('SIGUSR2', ปิดเครื่อง); // ใช้โดยเครื่องมือ dev ของฉัน

มีสัญญาณอื่นที่ฉันควรตรวจสอบหรือไม่? กระบวนการปิดอย่างไร้ความปราณีด้วย SIGKILL แทนหรือไม่? ถ้าเป็นเช่นนั้น ฉันสามารถเปลี่ยนแปลงสิ่งนั้นได้ไหม โดยอาจมีการหน่วงเวลาเพื่อให้การปิดระบบอย่างสง่างามเกิดขึ้นสักครั้งได้ไหม

Michael Hampton avatar
cz flag
คุณตรวจสอบบันทึกของแอปแล้วหรือยัง
kshetline avatar
br flag
ไม่มีอะไรที่เป็นประโยชน์ที่ฉันสามารถเห็นได้ เว้นแต่ฉันจะไม่รู้บันทึกที่ถูกต้องในการดู ในบันทึก Apache ฉันไม่เห็นอะไรเลย ใน `/var/log/httpd/error_log` ที่เอาต์พุต Node.js ทั้งหมดไป (ไม่ว่าจะมาจาก stdout หรือ stderr) ทั้งหมดที่ฉันเห็นคือ Node.js ของฉันทำงานอย่างสนุกสนาน จากนั้นรีสตาร์ทโดยไม่มีคำใบ้ว่าทำไมมันถึงจำเป็น เพื่อเริ่มต้นใหม่
Michael Hampton avatar
cz flag
ฉันคิดว่า ณ จุดนี้เราสามารถทำได้น้อยมาก คุณจะต้องเจาะลึกถึงสิ่งที่ Plesk กำลังทำอยู่ ไม่ว่าคุณจะคลิกปุ่มรีสตาร์ทหรืออะไรก็ตามที่มันทำในเวลา 03:30 น. ซึ่งน่าจะเป็นไปได้ทั้งสองอย่าง
kshetline avatar
br flag
ฉันไม่แน่ใจว่าปัญหานี้เป็นปัญหาเฉพาะของ Plesk หรืออาจมีการใช้งานมาตรฐานสำหรับการใช้ Node.js กับ Apache และคำแนะนำทั่วไปเกี่ยวกับ Apache ฉันโพสต์เมื่อไม่กี่วันที่แล้ว talk.plesk.com และจนถึงตอนนี้... จิ้งหรีด!
kshetline avatar
br flag
เมื่อฉันป้อน 'plesk' เป็นแท็กสำหรับโพสต์นี้ มีคำเตือนสำหรับแท็กนั้นว่าคำถามส่วนใหญ่เกี่ยวกับ Plesk อยู่ใน webmasters.stackexchange.com อย่างไรก็ตาม คำถามเดียวกันนี้ถูกปิดเนื่องจากไม่เกี่ยวกับหัวข้อ ดังนั้นฉันหวังว่าจะมีคนช่วยที่นี่ได้ ฟอรัม Plesk เงียบกริบในเรื่องนี้
Michael Hampton avatar
cz flag
ไม่มีวิธีมาตรฐานในการเริ่มแอป Node.js คุณจะต้องค้นหาว่า Plesk ทำได้อย่างไร และนั่นไม่ใช่สิ่งที่เราจะช่วยได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา