การอัปเดตปี 2559:
ซีรีย์ node-windows / mac / linux ใช้ API ทั่วไปในทุกระบบปฏิบัติการดังนั้นจึงเป็นโซลูชันที่เกี่ยวข้องอย่างยิ่ง อย่างไรก็ตาม; node-linux สร้างไฟล์ init ของ systemv เนื่องจาก systemd ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ จึงเป็นตัวเลือกที่ดีกว่าบน Linux PR ยินดีต้อนรับถ้าใครต้องการเพิ่มการสนับสนุน systemd ไปที่ node-linux :-)
กระทู้เดิม:
นี่เป็นเธรดที่ค่อนข้างเก่าแล้วตอนนี้ แต่โหนดของ Windows เป็นอีกวิธีหนึ่งในการสร้างบริการพื้นหลังบน Windows มันขึ้นอยู่กับnssm
แนวคิดของการใช้exe
wrapper รอบ ๆ โหนดสคริปต์ของคุณ อย่างไรก็ตาม; มันใช้winsw.exe
แทนและจัดเตรียม wrapper โหนดที่กำหนดค่าได้เพื่อการควบคุมที่ละเอียดยิ่งขึ้นเกี่ยวกับวิธีการเริ่ม / หยุดกระบวนการเมื่อเกิดความล้มเหลว กระบวนการเหล่านี้มีให้บริการเหมือนบริการอื่น ๆ :
โมดูลยังอบในการบันทึกเหตุการณ์บางอย่าง:
การกำหนดให้สคริปต์ของคุณสามารถทำได้โดยใช้รหัส ตัวอย่างเช่น:
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\my\\node\\script.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
console.log(svc.name+' started!\nVisit http://127.0.0.1:3000 to see it in action.');
});
// Install the script as a service.
svc.install();
โมดูลสนับสนุนสิ่งต่าง ๆ เช่นการรีสตาร์ท capping (สคริปต์ที่ไม่ดีจะไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ของคุณ) และเพิ่มระยะเวลาระหว่างการรีสตาร์ท
เนื่องจากบริการโหนดหน้าต่างทำงานเหมือนกันจึงเป็นไปได้ที่จะจัดการ / ตรวจสอบบริการด้วยซอฟต์แวร์ใดก็ตามที่คุณใช้อยู่แล้ว
ในที่สุดก็ไม่มีการmake
พึ่งพา กล่าวอีกนัยหนึ่งตรงไปตรงมาnpm install -g node-windows
จะทำงาน คุณไม่จำเป็นต้องใช้ Visual Studio, .NET หรือ node-gyp magic ในการติดตั้ง นอกจากนี้ยังได้รับอนุญาตจาก MIT และ BSD
ในการเปิดเผยแบบเต็มฉันเป็นผู้สร้างโมดูลนี้ มันถูกออกแบบมาเพื่อบรรเทาอาการปวดที่แน่นอนที่ OP ได้รับ แต่ด้วยการผนวกการทำงานที่ระบบปฏิบัติการมอบให้อย่างเข้มงวดมากขึ้น ฉันหวังว่าผู้ชมในอนาคตด้วยคำถามเดียวกันนี้จะเป็นประโยชน์