Questa traduzione fornita da StrongLoop / IBM.

È possibile che questo documento non sia aggiornato poiché la documentazione è in inglese. Per gli ultimi aggiornamenti, fare riferimento alla documentazione in inglese.

Process manager per le applicazioni Express

Quando si eseguono le applicazioni Express per la produzione, è utile utilizzare un process manager per effettuare le seguenti attività:

Un process manager è simile a un server delle applicazioni: è un “contenitore” per le applicazioni che facilita lo sviluppo, fornisce un’elevata disponibilità e consente di gestire l’applicazione al momento del runtime.

I process manager più noti per Express e altre applicazioni Node.js sono i seguenti:

L’utilizzo di uno di questi tre strumenti può essere molto utile, tuttavia, StrongLoop Process Manager è l’unico strumento che fornisce una soluzione di distribuzione e runtime completa che interessa il ciclo di vita dell’intera applicazione Node.js, con la possibilità di usufruire di strumenti in ciascuna fase prima e dopo la produzione, in un’interfaccia unificata.

Segue una breve descrizione relativa ad ogni strumento. Per un confronto dettagliato, consultare http://strong-pm.io/compare/.

StrongLoop Process Manager

StrongLoop Process Manager (StrongLoop PM) è un process manager di produzione per le applicazioni Node.js. StrongLoop PM dispone di servizi di bilanciamento del carico integrati, del servizio di monitoraggio, dell’implementazione multi-host e di una console grafica. È possibile utilizzare StrongLoop PM per svolgere le seguenti attività:

È possibile gestire StrongLoop PM utilizzando uno strumento di interfaccia della riga comandi avanzato denominato slc oppure uno strumento grafico denominato Arc. Arc è open source, con un supporto professionale fornito da StrongLoop.

Per ulteriori informazioni, consultare http://strong-pm.io/.

Documentazione completa:

Installazione

$ [sudo] npm install -g strongloop

Utilizzo di base

$ cd my-app
$ slc start

Visualizzare lo stato del Process Manager e tutte le applicazioni implementate:

$ slc ctl
Service ID: 1
Service Name: my-app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Cluster size
     4.1.13      1.5.14           4
Processes:
        ID      PID   WID  Listening Ports  Tracking objects?  CPU profiling?
    1.1.57692  57692   0
    1.1.57693  57693   1     0.0.0.0:3001
    1.1.57694  57694   2     0.0.0.0:3001
    1.1.57695  57695   3     0.0.0.0:3001
    1.1.57696  57696   4     0.0.0.0:3001

Elencare tutte le applicazioni (servizi) sotto la gestione:

$ slc ctl ls
Id          Name         Scale
 1          my-app       1

Arrestare un’applicazione:

$ slc ctl stop my-app

Riavviare un’applicazione:

$ slc ctl restart my-app

È inoltre possibile effettuare un “avvio a caldo,” il quale fornisce ai processi di lavoro un determinato periodo di tempo per chiudere le connessioni e successivamente riavviare l’applicazione corrente:

$ slc ctl soft-restart my-app

Per rimuovere un’applicazione dalla gestione:

$ slc ctl remove my-app

PM2

PM2 è un process manager di produzione per le applicazioni Node.js, che dispone di un servizio di bilanciamento del carico integrato. PM2 è utile per consentire alle applicazioni di essere sempre attive e consente di ricaricarle senza interruzione, inoltre faciliterà le attività di gestione del sistema comuni. PM2 inoltre consente di gestire la registrazione dell’applicazione, il monitoraggio e il clustering.

Per ulteriori informazioni, consultare https://github.com/Unitech/pm2.

Installazione

$ [sudo] npm install pm2 -g

Utilizzo di base

Quando si avvia un’applicazione utilizzando il comando pm2, è necessario specificare il percorso dell’applicazione. Tuttavia, quando si arresta, riavvia o si cancella un’applicazione, è possibile specificare solo il nome o l’ID dell’applicazione.

$ pm2 start npm --name my-app -- start
[PM2] restartProcessId process id 0
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ my-app   │ 0  │ fork │ 64029 │ online │ 1       │ 0s     │ 17.816 MB   │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use the `pm2 show <id|name>` command to get more details about an app.

Quando si avvia un’applicazione utilizzando il comando pm2, l’applicazione viene immediatamente inviata all’applicazione di background. È possibile controllare l’applicazione di background dalla riga comandi utilizzando diversi comandi pm2.

Dopo che un’applicazione viene avviata tramite il comando pm2, viene registrata nell’elenco di processi PM2 con un ID. È possibile quindi gestire le applicazioni con lo stesso nome da directory differenti sul sistema, utilizzando i relativi ID.

Notare che se più di un’applicazione è in esecuzione con lo stesso nome, i comandi pm2 saranno relativi a tutte quelle applicazioni. Pertanto, si consiglia di utilizzare gli ID invece dei nomi per gestire applicazioni individuali.

Elencare tutti i processi in esecuzione:

$ pm2 list

Arrestare un’applicazione:

$ pm2 stop 0

Riavviare un’applicazione:

$ pm2 restart 0

Per visualizzare informazioni dettagliate su un’applicazione:

$ pm2 show 0

Per rimuovere un’applicazione dal registro di PM2:

$ pm2 delete 0

Forever

Forever è uno strumento di interfaccia della riga comandi semplice che assicura che uno script fornito sia in esecuzione continua (forever). L’interfaccia semplice Forever è ideale per l’esecuzione di piccole distribuzioni degli script e applicazioni di Node.js.

Per ulteriori informazioni, consultare https://github.com/foreverjs/forever.

Installazione

$ [sudo] npm install forever -g

Utilizzo di base

Per avviare uno script, utilizzare il comando forever start e specificare il percorso dello script:

$ forever start script.js

Questo comando consentirà l’esecuzione dello script in modalità daemon (in background).

Per eseguire lo script in modo tale che sia visualizzato sul terminale, omettere start:

$ forever script.js

Si consiglia di registrare l’output dallo strumento Forever e lo script utilizzando le opzioni di registrazione -l, -o e -e, come mostrato nel seguente esempio:

$ forever start -l forever.log -o out.log -e err.log script.js

Per visualizzare l’elenco di script avviati da Forever:

$ forever list

Per arrestare uno script che era stato avviato da Forever, utilizzare il comando forever stop e specificare l’indice del processo (come elencato dal comando forever list).

$ forever stop 1

In alternativa, specificare il percorso del file:

$ forever stop script.js

Per arrestare tutti gli script avviati da Forever:

$ forever stopall

Forever dispone di molte più opzioni e fornisce inoltre un’API programmatica.