2014-05-18 12 views
6

Mam aplikację nodeJS, która komunikuje się z aplikacją innej firmy zainstalowaną jako usługa systemu Windows. Moja aplikacja nodeJS wymaga, aby ta usługa działała, ale w pewnych okolicznościach może nie działać.Węzeł js uruchamianie i zatrzymywanie usług Windows

Próbuję wyszukać metodę sprawdzania, czy ta usługa systemu Windows jest uruchomiona, a jeśli nie, uruchom ją. Po wielu dniach wyszukiwania znalazłem wiele wyników do uruchamiania aplikacji nodeJS jako usługi systemu Windows, ale nie zapewniającej możliwości uruchamiania/zatrzymywania już zainstalowanych usług Windows.

Czy to możliwe? Znalazłem narzędzia takie jak PSEXEC, więc mogłem sprawić, aby nodeJS uruchamiał taki skrypt, ale byłoby lepiej, gdyby nodeJS mogło wykonać to zadanie natywnie.

Wszelkie informacje w tym celu byłyby bardzo przydatne i trudno mi uwierzyć, że inni nie byli w sytuacji, w której musieliby to zrobić.

Stephen

Odpowiedz

3

W oknach, z linii poleceń można wpisać:

# Start a service 
net start <servicename> 

# Stop a service 
net stop <servicename> 

# You can also pause and continue 

Więc odpowiedź jest prosta - wykorzystanie przez dzieci proces uruchomienia usługi po uruchomieniu serwera. Coś takiego:

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. 
}); 

EDIT: znalazłem też to nodejs moduł o nazwie "windows-service". Wydaje się obiecujące dla tego, co próbujesz zrobić. Część jego funkcjonalności jest zaimplementowana w języku C++, gdzie próbuje wysłać zapytanie do Menedżera usług systemu Windows.

+0

Na miejscu, za pomocą procesu dziecko działało wielkie dzięki. – ste2425

Powiązane problemy