2014-06-24 16 views
8

Ho distribuito la mia prima app Node.js sul livello gratuito di OpenShift e funziona benissimo.È necessario utilizzare Forever.js su OpenShift?

OpenShift riavvierà automaticamente la mia app di nodo quando si blocca o devo impostare Forever.js? Ho provato a configurarlo e non funzionerebbe. Dopo aver eseguito node_modules/forever/bin/forever start app.js (dir di lavoro è stato app-root/repo, con copia locale di forever) ho ottenuto questo output:

warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
info: Forever processing file: app.js 

fs.js:240 
    return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); 
       ^
Error: ENOENT, no such file or directory '/var/lib/openshift/5397416f5004466c0b000080/.forever/VQMF.log' 
    at Object.openSync (fs.js:240:18) 
    at Object.startDaemon (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:406:14) 
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:258:13 
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:145:5 
    at Object.oncomplete (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:358:11) 

affermativo, OpenShift gestire la salute di mia app per me, o avrò bisogno di ottenere sempre lavorare? Se è così, qualche idea sull'errore che ho ottenuto?

+0

domanda perfetta, esattamente ciò che ho bisogno di sapere si spostano su da Modulo (che riavvia anche la vostra app). Modulus ha anche la possibilità di inviarti una e-mail, qualcuno sa se OpenShift può farlo? (Non sembra che il supervisore del nodo abbia questa opzione) – user949300

risposta

6

Sì, OpenShift riavvia automaticamente l'app Node in caso di arresto anomalo. OpenShift non usa forever.js ma usa node-supervisor. Puoi testarlo richiedendo qualcosa che non esiste. Risolvilo velocemente però perché il log può crescere velocemente riavviando l'app. Ecco il log in nodejs.log su OpenShift il che dimostra che è in esecuzione del nodo-supervisor:

DEBUG: Running node-supervisor with 
DEBUG: program 'server.js' 
DEBUG: --watch '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' 
DEBUG: --ignore 'undefined' 
DEBUG: --extensions 'node|js|coffee' 
DEBUG: --exec 'node' 
DEBUG: Starting child process with 'node server.js' 
DEBUG: Watching directory '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' for changes. 
+0

Interessante, dov'è quel registro? E usa 'main' o' scripts.start' per questo? – Jeff

+0

ssh sul sistema utilizzando la stringa di comando dal sito openshift sotto la tua app. Quindi cd app-root/logs, tutti i log sono lì. Sono sicuro che stanno usando script da implementare poiché ci sono così tante cose che sono state avviate/installate/installate prima di avviare l'app ... Non l'ho davvero scavato per vedere quale script è però. – Ben

+0

Fantastico, grazie! – Jeff

5

Attualmente, il comportamento predefinito di OpenShift comporta l'uso di supervisor per iniziare, orologio, e riavviare le applicazioni nodejs.

Ecco un breve profilo delle varie opzioni init per nodejs:

  1. Se l'applicazione include un package.json file valido con un main ingresso (containing the name of your server script), quindi OpenShift inizializza la vostra applicazione utilizzando supervisor per iniziare quella sceneggiatura.
  2. Se l'app include force_npm_deploy marker file (un file vuoto in .openshift/markers/use_npm), OpenShift eseguirà solo npm start. Esegue ciò che è definito nell'entità scripts.start del file .
  3. Se tutto il resto fallisce, OpenShift proverà a eseguire server.js utilizzando supervisor (come opzione di fallback).

Alcune note aggiuntive sono disponibili qui: https://www.openshift.com/blogs/10-reasons-openshift-is-the-best-place-to-host-your-nodejs-app#npm

+0

Grazie, anche questo è stato utile. :) – Jeff

Problemi correlati