PM2: NodeJS process manager

pm2 je serverový process manager pro NodeJS aplikace. Jedná se o užitečnou utilitu, která vám pomůže lépe a jednodušeji spravovat vaše NodeJS aplikace na serveru.

NodeJS: JavaScript na serveru

Základní funkcí pm2 je spouštení NodeJS scriptů. Spouštěním se tady rozumí i znovu spuštění aplikace po nějaké havárii. To znamená, že když vám vaše aplikace zhavaruje, pm2 se postará o její automatické znovu-spuštění.

Vedle toho umí pm2 sledovat i změny ve scriptech vaší aplikace a automaticky reloadovat aplikaci při jakékoliv změně. To se hodí například když pushujete na server novou verzi aplikace. pm2 se postará o její znovuspuštění na základě změny v souborech.

Vedle tohoto můžete spuštěné aplikace monitorovat. Sledovat vytížení CPU či paměti.

nodejs pm2 monitor

Další významnou funkcí je clustering. Pokud nepoužíváte nějaký load balancer jako je například Nginx, pak pm2 umí spustit požadovaný počet kopii vaší aplikace a postará se o jejich clusterizaci.

Vedle toho můžete spustit pm2 v módu webového serveru a pak na portu 9615 získat debog info v JSON formátu.

Další užitečnou funkcinoalito pm2 je vytváření startovacích init scriptů pro váš server.

pm2 vytvoří script do /etc/init.d a tak zajistí automatické spouštění webové aplikace po restartování celého serveru.

pm2 samzřejmě umí i předávat parametry zadané na příkazové řádce interpeteru nodejs

pm2 obsahuje i V8 GC memory leak detection.

Alternativou k pm2, co by serverového process managera může být například modul forever, nebo passenger.

Passenger ja pak daleko všestranější, ale i složitější, nástroj, který se neomezuje na NodeJS aplikace a umí spravovat v podstatě jakoukoliv aplikaci v Pythonu, Ruby a podobně.