ตรวจสอบว่ากระบวนการของฉันถูกฆ่าอย่างไร


1

ขณะนี้ฉันกำลังใช้งานเซิร์ฟเวอร์ Node.JS แบบง่าย ๆ ด้วยexpress.jsบน RaspberryPi ที่ติดตั้ง Debian ไว้ ทุกอย่างทำงานได้ดี แต่ทุกเช้าฉันตื่นขึ้นมาเห็นเซิร์ฟเวอร์ของฉันไม่ทำงานอีกต่อไป (กระบวนการเซิร์ฟเวอร์ที่ฉันเริ่มต้นด้วยnode main.js)

การเดาครั้งแรกของฉันคือ Pi มีโหมดสลีปบางอย่างซึ่งเข้าสู่หลังจากผ่านไปสองสามชั่วโมงโดยไม่มีทราฟฟิก / ฯลฯ และปิดเซิร์ฟเวอร์ แต่ฉันยังเรียกใช้ไคลเอ็นต์ dydns ซึ่งยังคงทำงานทุกเช้า .

มีวิธีในการติดตามกระบวนการหลังจากที่ฉันเริ่มต้นเพื่อตรวจสอบในเช้าวันพรุ่งนี้สิ่งที่ฆ่ากระบวนการของฉันหรือทำไมมันสิ้นสุดลง?

เซิร์ฟเวอร์นั้นดูเรียบง่ายและฉันไม่คิดว่าจะมีการปิดเครื่องอัตโนมัติบางอย่างที่ฉันพลาด นี่คือรหัสที่ฉันใช้

var express = require('express');
var path    = require('path');

var server  = express();
server.use(express.static(path.join(__dirname, 'public')));

server.listen(1337);
console.log("Server listening (PORT: " + 1337 + ") ...");

มีความคิดอะไรที่ต้องทำเพื่อให้เซิร์ฟเวอร์ทำงาน / ค้นหาสาเหตุที่ทำให้หยุดชะงัก?

คำตอบ:


0

คุณสามารถทำให้การใช้เครื่องมือการจัดการกระบวนการบางอย่างเช่นPM2หรือตลอดไป

หากคุณกำลังใช้ PM2 pm2 start main.jsคุณสามารถทำได้ มันจะตรวจสอบและรีสตาร์ทกระบวนการถ้ามันถูกฆ่า คุณสามารถหาสาเหตุของข้อผิดพลาดในบันทึกของ pm2 ที่อยู่ภายใน ~ / .pm2

คุณสามารถเรียกใช้pm2 startupเพื่อสร้างสคริปต์เริ่มต้นที่อนุญาตให้ PM2 สามารถเรียกใช้ในการบูต

pm2 save บันทึกรายการกระบวนการปัจจุบันเพื่อให้สามารถเรียกใช้เมื่อรีบูตระบบ


ขอบคุณสำหรับคำตอบที่foreverน่าสนใจมาก แต่จริง ๆ แล้วฉันได้รับโพสต์นี้ซึ่งแก้ไขปัญหาของฉัน (เริ่มต้นผ่าน SSH)
LastSecondsToLive
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.