Tento dokument môže byť v porovnaní s dokumentáciou v angličtine zastaralý. Aktuálne informácie nájdete v dokumentácii v angličtine.

Použitie správcov procesov pre Express aplikácie

Ak vaša Express aplikácia pobeží v produkcii, môže byť k dosiahnutiu nasledujúcich úloh vhodné použiť správcu processov (process manager):

Správca procesov je čiastočne akoby aplikačný server: je to “kontainer” pre aplikácie uľahčujúci ich deployment, poskytujúci vysokú dostupnosť a umožňujúci správu aplikácie v runtime.

Najpopulárnejšie s pomedzi správcov procesov pre Express i ostatné Node.js aplikácie patria:

Použitie ktoréhokoľvek z hore spomenutých nástrojov môže byť veľmi nápomocné, avšak StrongLoop Process Manager je jediným nástrojom poskytujúcim obsiahle runtime a deployment riešenie adresujúce celý životný cyklus Node.js aplikácie pomocou nástrojov pre každý krok pred a po nasadení do produkcie a to v jednotnom rozhraní.

Tu je jednoduchý náhľad na každý z týchto nástrojov. Pre detailnejšie porovnanie sa pozrite na http://strong-pm.io/compare/.

StrongLoop Process Manager

StrongLoop Process Manager (StrongLoop PM) je produkčný správca procesov pre Node.js aplikácie. StrongLoop PM má vstavaný load balancing, monitoring, multi-host deployment a grafickú konzolu. StrongLoop PM môžete využiť na tieto úlohy:

So StrongLoop PM dokážete pracovať pomocou výkonného command-line interface nástroja nazývaného slc, prípadne grafického nástroja nazývaného Arc. Arc je open source s profesonálnou podporou od StrongLoop-u.

Pre viac informácií si pozrite http://strong-pm.io/.

Celá dokumentácia:

Inštalácia

$ [sudo] npm install -g strongloop

Základné použitie

$ cd my-app
$ slc start

Zobrazenie stavu správcu procesov a všetkých deploynutých aplikácií:

$ 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

Vypísanie zoznamu všetkých aplikácií (servisov) pod správou:

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

Stopnutie aplikácie:

$ slc ctl stop my-app

Reštart aplikácie:

$ slc ctl restart my-app

Môžete taktiež vykonať “mäkký reštart”, ktorý dá worker procesom dostatok času na uzatvorenie existujúcich pripojení a následne reštartuje aplikáciu:

$ slc ctl soft-restart my-app

Odstránenie aplikácie zo správy:

$ slc ctl remove my-app

PM2

PM2 je produkčný správca procesov pre Node.js aplikácie so vstavaným load balancerom. PM2 dokáže udržať aplikáciu nažive a vykonať jej prípadný reload bez výpadku a umožní vykonávať bežné system admin úlohy. PM2 taktiež umožňuje spravovať logovanie, monitoring a clustering aplikácií.

Pre viac informácií sa pozrite na https://github.com/Unitech/pm2.

Inštalácia

$ [sudo] npm install pm2 -g

Základné použitie

Pre naštartovanie aplikácie pomocou pm2 príkazu musíte špecifikovať cestu k aplikácii. Avšak pre stop, reštart, alebo odstránenie aplikácie zo správy, postačuje špecifikovať len jej názov alebo ID.

$ 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.

Po naštartovaní aplikácie pomocou pm2 príkazu sa aplikácia automaticky spustí na backgrounde (pozadí). Background aplikáciu môžete ovládať z príkazového riadka pomocou rozličných pm2 príkazov.

Potom, ako je aplikácia naštartovaná pomocou pm2 príkazu, je zaregistrovaná do zoznamu PM2 procesov pod konkrétnym ID. Preto dokážete spravovať aplikácie s rovnakým názvom z rôznych priečinkov, použitím ich ID.

Pozn., ak Vám beží viac ako jedna aplikácia s rovnakým názvom, vykonanie pm2 príkazu ich ovplyvní všetky. Preto pre správu konkrétnej aplikácie používajte namiesto názvu radšej jej ID.

Vypísanie zoznamu všetkých bežiacich procesov:

$ pm2 list

Stopnutie aplikácie:

$ pm2 stop 0

Reštart aplikácie:

$ pm2 restart 0

Pre zobrazenie detailných informácií o aplikácii:

$ pm2 show 0

Odstránenie aplikácie z PM2 registra:

$ pm2 delete 0

Forever

Forever je jednoduchý command-line nástroj slúžiaci na udržanie vášho skriptu nažive. Jednoduché rozhranie nástroja Forever ho robí ideálnym pre správu menších deploymentov Node.js aplikácií a skriptov.

Pre viac informácií sa pozrite na https://github.com/foreverjs/forever.

Inštalácia

$ [sudo] npm install forever -g

Základné použitie

Pre naštartovanie použite príkaz forever start a špecifikujte cestu k skriptu:

$ forever start script.js

Tento príkaz spustí skript v tzv. daemon móde (na pozadí).

Pre priame spistenie skriptu v termináli vynechajte start:

$ forever script.js

Je dobrým zvykom logovať výstup z nástroja Forever a skriptu pomocou prepínača -l, -o a -e, ako je uvedené v príklade nižšie:

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

Pre zobrazenie zoznamu skriptov, ktoré boli naštartované pomocou Forever použite:

$ forever list

Pre stopnutie skriptu naštartovaného pomocou Forever použite príkaz forever stop a špecifikujte index procesu (podľa výpisu z forever list príkazu).

$ forever stop 1

Taktiež to môžete vykonať pomocou špecifikovania cesty k skriptu:

$ forever stop script.js

Pre stopnutie všetkých skriptov, ktoré boli naštartované pomocou Forever príkazu použite:

$ forever stopall

Nástroj Forever má veľa možností a taktiež poskytuje programové API.