2015-04-20 12 views
6

Esistono diverse versioni di nodo in esecuzione sul nostro server linux, e il mio servizio è basato sul nodo v0.11.14. Tuttavia, il codice di altre persone deve essere eseguito su una versione inferiore del nodo (inferiore alla v0.11), altrimenti i loro servizi saranno fuori servizio. Quindi non posso definire la versione del nodo globale come v0.11. Voglio solo eseguire pm2 per monitorare il mio servizio basato sul nodo v0.11.Come posso eseguire pm2 su una determinata versione di nodo?

Esiste comunque l'esecuzione di my pm2 sul nodo v0.11 senza modificare la versione del nodo globale? Grazie

risposta

1

installare https://github.com/creationix/nvm

quindi installare specifica versione nodo:

nvm install 0.11.14 

che in un guscio di utilizzare la versione specifica:

nvm use 0.11.14 

node -v // v0.11.14 
+0

Grazie per la risposta, ma 'nvm usa 0.11.14' la versione del nodo globale viene modificata in v0.11.14? – hwoarangzk

+0

Nvm fondamentalmente una funzione shell, quindi nessuna modifica globale, la versione impostata con nvm è associata alla sessione shell –

+0

FYI, è possibile installare un nvm per utente e un pm2 per utente a livello globale su diverse versioni di nodo con nvm. Vorrei aggiungere che il nodo '11' è instabile ma' 12' non lo è;). – soyuka

3

Per conduzione varie versioni contemporaneamente . In pm2, è possibile utilizzare le opzioni --interpreter e specificare il percorso della versione del nodo desiderata.

Se si utilizza n per la versione da eseguire n bin v4.2.0 per ottenere il percorso di questa versione di nodo.

+0

l'ultima volta che ho controllato, è rotto in modalità cluster. sta funzionando ora? –

+0

@TuanAnhTran Non ho avuto alcun problema con la modalità cluster – Sylvain

1

Si prega di leggere il thread: Using different versions of node via nvm for each app

Credo che si voleva di hack di NVM, ma credetemi si può risparmiare molto del vostro tempo.

È possibile trovare un commento nel thread da parte del proprietario PM2 stessa, che afferma è possibile eseguire più applicazioni su diverse versioni di nodi, ecco un contenuto JSON conf:

{ 
 
    apps : [{ 
 
    name : 'API', 
 
    script : 'api.js', 
 
    interpreter : '[email protected]' 
 
}] 
 
}

Se sei interessato alla soluzione sopra, leggi la documentazione qui: PM2 - process file

PM2 potenzia il flusso di lavoro della gestione dei processi. Consente di ottimizzare il comportamento, le opzioni, le variabili di ambiente, i file di registro di ciascuna applicazione tramite un file di processo. È particolarmente utile per le applicazioni basate su micro-servizi.

Il formato di configurazione supportato è Javascript, JSON e YAML.

+1

Qualcosa da tenere a mente quando si esegue questa operazione se si utilizza la modalità cluster .... [PM2] [WARN] La scelta della versione Node.js in modalità cluster non è supportata . Il che significa che tutte le tue app dovranno utilizzare la stessa versione di nodo da cui viene eseguito pm2. – Marc

Problemi correlati