2014-05-18 2 views
6

Windows 서비스로 설치된 타사 응용 프로그램과 통신하는 nodeJS 응용 프로그램이 있습니다. 내 nodeJS 응용 프로그램은이 서비스가 실행되도록 요구하지만 경우에 따라 그렇지 않을 수도 있습니다.노드 js Windows 서비스 시작 및 중지

이 Windows 서비스가 실행 중인지 확인하고, 시작하지 않는 방법을 검색하려고합니다. 여러 날 동안 검색 한 결과, Windows 서비스로서 nodeJS 응용 프로그램을 실행하는 데 많은 결과가 있지만 이미 설치된 Windows 서비스를 시작/중지 할 수있는 기능은 제공되지 않았습니다.

이것도 가능합니까? PSEXEC과 같은 도구를 발견 했으므로 nodeJS에서 이러한 스크립트를 실행할 수는 있지만 nodeJS가 기본적으로이 작업을 수행 할 수 있다면 바람직합니다.

이 정보는 매우 유용 할 것이며 다른 사람들이이 작업을 수행해야하는 상황에 있지 않았다고 믿기 어렵습니다.

스티븐 사용자가 입력 할 수있는 명령 줄에서 창에서

답변

3

는 :

# Start a service 
net start <servicename> 

# Stop a service 
net stop <servicename> 

# You can also pause and continue 

그래서 간단한 대답은 - 서버의 시작시 서비스를 시작 자식 프로세스를 사용합니다. 이런 식으로 뭔가 :

var child = require('child_process').exec('net start <service>', function (error, stdout, stderr) { 
    if (error !== null) { 
     console.log('exec error: ' + error); 
    } 
    // Validate stdout/stderr to see if service is already running 
    // perhaps. 
}); 

편집 :은 또한이 "windows-service"라는 모듈을 nodejs 발견했다. 당신이하려고하는 것을 약속하는 것 같습니다. 일부 기능은 C++에서 구현되어 Windows Service Manager를 쿼리합니다.

+0

스폿을 켜고 자식 프로세스를 사용하여 큰 감사를 드렸습니다. – ste2425

관련 문제