Procesbeheer met PM2
Leer PM2 gebruiken voor het beheren, monitoren en schalen van Node.js-applicaties in productieomgevingen.
Procesbeheer met PM2 is een gratis Bootcamp backendontwikkeling met Node.js-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met Node.js. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat is PM2?
Welkom bij procesbeheer met PM2! PM2 staat voor Process Manager 2 en is een krachtige tool voor Node.js-toepassingen.
In productie moet je toepassing betrouwbaar draaien, na een crash opnieuw starten en serverbronnen efficiënt gebruiken. PM2 regelt dit allemaal.
- Actief houden: Start je toepassing automatisch opnieuw als deze crasht.
- Bewaking: Geeft inzicht in de prestaties van je toepassing.
- Schaling: Voer eenvoudig meerdere instanties van je toepassing uit voor betere prestaties.
PM2 globaal installeren
Met PM2 aan de slag gaan is eenvoudig. Je installeert het globaal met npm, zodat het als opdrachtregelprogramma op je systeem beschikbaar is.
Open je terminal en voer de volgende opdracht uit:
npm install -g pm2
Met deze opdracht installeer je de PM2 CLI (Command Line Interface) globaal, zodat je vanuit elke map pm2-opdrachten kunt gebruiken.
Je eerste toepassing starten
Na de installatie kun je elke Node.js-toepassing met een eenvoudige opdracht starten. PM2 houdt deze op de achtergrond actief, zelfs als je terminal wordt gesloten!
Hier is eerst een eenvoudige Node.js-server:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from PM2!\n');
});
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});Starten met PM2
Om de server uit de vorige scène (stel dat deze is opgeslagen als app.js) met PM2 te starten, voer je het volgende uit:
pm2 start app.js --name my-first-app
De vlag --name geeft je proces een herkenbare naam. PM2 vermeldt daarna je actieve toepassing met de status, actieve tijd en andere gegevens.
Als je toepassing crasht, start PM2 deze automatisch opnieuw, zodat een hoge beschikbaarheid wordt gegarandeerd!
Je processen bewaken
PM2 biedt uitstekende hulpmiddelen om je actieve toepassingen te bewaken. Je kunt snel een lijst bekijken van alle beheerde processen en hun statussen.
pm2 list: Toont een tabel met alle door PM2 beheerde processen, inclusief hun id, naam, status, CPU-gebruik, geheugengebruik en actieve tijd.pm2 monit: Toont in je terminal een dashboardachtig overzicht met realtimegegevens over CPU, geheugen en logboekberichten voor al je toepassingen. Dit is handig voor snelle gezondheidscontroles.
Toepassingen stoppen en opnieuw starten
De levenscyclus van je toepassingen beheren is eenvoudig met PM2. Je kunt processen stoppen, opnieuw starten of verwijderen met hun naam of id.
pm2 stop my-first-app: Stopt de toepassing met de naam 'my-first-app'.pm2 restart my-first-app: Start de toepassing opnieuw. Handig na wijzigingen in de code.pm2 delete my-first-app: Stopt de toepassing en verwijdert deze uit de proceslijst van PM2.pm2 stop all: Stopt alle actieve toepassingen die door PM2 worden beheerd.
Met deze opdrachten houd je volledige controle over je geïmplementeerde Node.js-services.
Een configuratiebestand gebruiken
Voor complexere opstellingen of het beheren van meerdere toepassingen kun je met PM2 een configuratiebestand gebruiken (bijvoorbeeld ecosystem.config.js). Dit bestand definieert je toepassingen, omgevingsvariabelen en andere instellingen.
Hier is een eenvoudige toepassing ter demonstratie:
const http = require('http');
const port = process.env.PORT || 3001;
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(`Hello from config app on port ${port} (PID: ${process.pid})!\n`);
}).listen(port, () => {
console.log(`Config demo server running on port ${port}`);
});Voorbeeld van een Ecosystem-configuratie
Laten we nu een ecosystem.config.js definiëren om deze toepassing te beheren:
module.exports = {
apps : [{
name: "my-config-app",
script: "app-config-demo.js",
instances: 1,
exec_mode: "fork",
env: {
NODE_ENV: "development",
PORT: 3001
},
env_production: {
NODE_ENV: "production",
PORT: 80
}
}]
};
Om deze toepassing te starten met het configuratiebestand, voer je het volgende uit: pm2 start ecosystem.config.js. Dit is ideaal voor versiebeheer en consistente implementaties.
Schalen met clustermodus
Node.js gebruikt één thread, maar moderne servers hebben meerdere CPU-kernen. Met de clustermodus van PM2 kun je meerdere instanties van je toepassing uitvoeren en de belasting over alle beschikbare kernen verdelen.
Hier is een eenvoudige toepassing die de id van het proces toont:
const http = require('http');
const process = require('process');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(`Hello from instance ${process.pid}!\n`);
});
const PORT = 3002;
server.listen(PORT, () => {
console.log(`Cluster server ${process.pid} running on port ${PORT}`);
});Uitvoeren in clustermodus
Om de app uit de vorige scène (bijvoorbeeld app-cluster.js) in clustermodus te starten, kun je het volgende gebruiken:
pm2 start app-cluster.js -i max
De vlag -i max vertelt PM2 om evenveel instanties te starten als je CPU kernen heeft. PM2 fungeert vervolgens als load balancer en verdeelt binnenkomende aanvragen over deze instanties. Dit verbetert de prestaties en veerkracht aanzienlijk.
Snelle controle van PM2
Je hebt geleerd hoe je Node.js-applicaties met PM2 kunt beheren, bewaken en opschalen. Test nu je begrip!
Samenvatting en volgende stappen
Goed gedaan! Je hebt de basisprincipes van procesbeheer met PM2 succesvol geleerd.
PM2 is een onmisbare tool voor het implementeren en onderhouden van Node.js-applicaties in productie. De tool biedt functies zoals automatische herstarts, bewaking en eenvoudig opschalen via clustering.
Blijf de documentatie van PM2 verkennen voor geavanceerdere functies, zoals logbeheer, opstartscripts en aangepaste metrieken. Veel succes met implementeren!
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 92
Veelgestelde vragen
Is de les “Procesbeheer met PM2” gratis?
Ja — de volledige tekst van “Procesbeheer met PM2” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Bootcamp backendontwikkeling met Node.js wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat leer ik in “Procesbeheer met PM2”?
Leer PM2 gebruiken voor het beheren, monitoren en schalen van Node.js-applicaties in productieomgevingen. Je oefent met Bootcamp backendontwikkeling met Node.js door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Bootcamp backendontwikkeling met Node.js te beginnen?
Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met Node.js op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Procesbeheer met PM2”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met Node.js?
Ja. Elke les over Bootcamp backendontwikkeling met Node.js bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Containerisatie met Docker
- Implementatie in de cloud (AWS/Heroku)
- Procesbeheer met PM2
- CI/CD-pipelines met GitHub Actions