2012-02-20 10 views
9

Jak mogę utworzyć aplikację, która może sam się zrestartować? Chcę utworzyć aplikację, która konfiguruje administratora sieci, który może sam się zrestartować. czy to możliwe? Jeśli tak to jak? Myślałem, że to możliwe z modułem procesowym wbudowanym w węzeł.Aplikacja node.js, która może się ponownie uruchomić

+0

Kilka modułów z https://github.com/joyent/node/wiki/modules# wiki-build-and-deployment roszczenie, aby to ułatwić – sarnold

Odpowiedz

11

Kilka razy przebiegłem na zawsze i łatwo jest zacząć. Sprawdź to pod adresem: https://github.com/nodejitsu/forever

+0

Nie widzę, gdzie na zawsze pozwala na ponowne uruchomienie ręcznie – LordZardeck

+0

@ Lord: zwróć szczególną uwagę na polecenia 'restart' i' restartall' .. – sarnold

+0

huh, te nie były t w pliku Readme. Próbuję go zainstalować teraz, ale mam pewne problemy w systemie Windows. http://stackoverflow.com/questions/9366916/cant-install-forever-on-on-windows – LordZardeck

4

Wiem, że jest trochę za późno na odpowiedź, ale miałem podobny wymóg. Chciałem zrestartować proces węzła po każdej zmianie konfiguracji. Używam pm2 do zarządzania moimi procesami węzłów, więc okazało się to bardzo łatwe.

Po dokonaniu zmiany konfiguracji, uruchom proces.exit() z procesu węzła. O ile widzę, proces kończy się wtedy pm2 restartuje proces dobrze.

Nie jestem jeszcze pewien, czy są jakieś efekty uboczne, ale teraz wydaje mi się, że działają dobrze.

+0

To jest poprawna odpowiedź dla mnie też – Antoine

0

Tak, firma upstart ponownie uruchomi proces bez numeru nodemon.

npm install -g nodemon 
sudo nodemon server.js 

nodemon będzie oglądać pliki w katalogu, który nodemon został rozpoczęty, a jeśli zmieni, zostanie ona automatycznie ponownie uruchomić aplikację węzła.

4

LK "I

Jest to możliwe bez zależności zewnętrzne:

console.log("This is pid " + process.pid); 
setTimeout(function() { 
    process.on("exit", function() { 
     require("child_process").spawn(process.argv.shift(), process.argv, { 
      cwd: process.cwd(), 
      detached : true, 
      stdio: "inherit" 
     }); 
    }); 
    process.exit(); 
}, 5000); 

źródło: https://gist.github.com/silverwind/d0802f7a919ae86ff25e

Powiązane problemy