2016 업데이트 :
node-windows / mac / linux 시리즈는 모든 운영 체제에서 공통 API를 사용하므로 절대적으로 관련 솔루션입니다. 하나; node-linux는 systemv init 파일을 생성합니다. systemd의 인기가 계속 높아짐에 따라 Linux에서는 실제로 더 나은 옵션입니다. 누구든지 node-linux에 시스템 지원을 추가하고 싶다면 PR을 환영합니다 :-)
실 :
이것은 꽤 오래된 스레드이지만 node-windows 는 Windows에서 백그라운드 서비스를 만드는 또 다른 방법을 제공합니다. 노드 스크립트 주위 nssm
에 exe
랩퍼 를 사용한다는 개념에 기반을두고 있습니다. 하나; winsw.exe
대신 사용 하고 프로세스가 실패시 시작 / 중지되는 방식을보다 세밀하게 제어 할 수 있도록 구성 가능한 노드 랩퍼를 제공합니다. 이러한 프로세스는 다른 서비스와 마찬가지로 사용할 수 있습니다.
이 모듈은 일부 이벤트 로깅에서도 작동합니다.
스크립트를 데몬 화하는 것은 코드를 통해 수행됩니다. 예를 들면 다음과 같습니다.
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();
이 모듈은 캡핑 재시작 (잘못된 스크립트가 서버를 방해하지 않음) 및 재시작 간격 증가와 같은 기능을 지원합니다.
노드 윈도우 서비스는 다른 서비스와 같이 실행되므로 이미 사용중인 소프트웨어로 서비스를 관리 / 모니터링 할 수 있습니다.
마지막으로 make
종속성 이 없습니다 . 다시 말해, 간단합니다npm install -g node-windows
하게 작동합니다. 이를 설치하기 위해 Visual Studio, .NET 또는 node-gyp 마술이 필요하지 않습니다. 또한 MIT 및 BSD 라이센스입니다.
전체 공개에서, 나는이 모듈의 저자입니다. OP가 경험 한 정확한 고통을 덜어 주도록 설계되었지만 운영 체제가 이미 제공 한 기능에보다 밀접하게 통합되었습니다. 이 같은 질문을 가진 미래의 시청자들이 유용하다고 생각합니다.