Pembaruan 2016:
Seri node-windows / mac / linux menggunakan API umum di semua sistem operasi, jadi ini benar-benar solusi yang relevan. Namun; node-linux menghasilkan file systemv init. Karena systemd terus tumbuh dalam popularitas, secara realistis pilihan yang lebih baik di Linux. Selamat datang PR jika ada yang ingin menambahkan dukungan systemd ke node-linux :-)
Utas asli:
Ini adalah utas yang cukup lama sekarang, tetapi node-windows menyediakan cara lain untuk membuat layanan latar belakang pada Windows. Ini secara longgar didasarkan pada nssm
konsep menggunakan exe
pembungkus di sekitar skrip simpul Anda. Namun; ia menggunakan winsw.exe
sebaliknya dan menyediakan pembungkus simpul yang dapat dikonfigurasi untuk kontrol lebih rinci tentang bagaimana proses dimulai / berhenti pada kegagalan. Proses-proses ini tersedia seperti layanan lainnya:
Modul ini juga dibuat di beberapa event logging:
Daemonisasi skrip Anda dilakukan melalui kode. Sebagai contoh:
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();
Modul ini mendukung hal-hal seperti capping restart (jadi skrip yang buruk tidak menyumbat server Anda) dan interval waktu yang bertambah antara restart.
Karena layanan node-windows berjalan seperti yang lain, dimungkinkan untuk mengelola / memantau layanan dengan perangkat lunak apa pun yang sudah Anda gunakan.
Akhirnya, tidak ada make
ketergantungan. Dengan kata lain, lugas npm install -g node-windows
akan bekerja. Anda tidak perlu sihir Visual Studio, .NET, atau simpul-gyp untuk menginstal ini. Juga, ini berlisensi MIT dan BSD.
Dalam pengungkapan penuh, saya penulis modul ini. Itu dirancang untuk menghilangkan rasa sakit yang dialami OP, tetapi dengan integrasi yang lebih ketat ke dalam fungsionalitas yang sudah disediakan Sistem Operasi. Saya berharap pemirsa di masa depan dengan pertanyaan yang sama akan bermanfaat.