Services beheren met supervisorctl via de CLI

Services beheren met supervisorctl via de CLI

Processen beheren met supervisorctl via de CLI

Notes
Supervisor processen  draaien in de userspace context. Deze worden niet door LinQhost gemonitored

Als developer maak je bij het ontwikkelen van moderne websites en applicaties vaak gebruik van achtergrondprocessen. Denk hierbij aan Laravel queue workers, Symfony messengers, Magento message queues of doorlopende Node.js scripts.

Om ervoor te zorgen dat deze processen altijd draaien, en automatisch opnieuw opstarten mocht er een crash optreden, maken wij op onze managed servers gebruik van Supervisor. Via de command line interface (CLI) tool supervisorctl heb je de volledige controle over deze processen. In dit artikel leggen we uit hoe je dit gebruikt.

Belangrijke tip: Werkt het supervisorctl commando niet?

Afhankelijk van hoe je verbinding maakt met de server (bijvoorbeeld via een non-interactive SSH-sessie of een automatisch deployment script), kan het zijn dat bash-aliassen niet goed worden meegenomen. Het standaard commando supervisorctl werkt dan niet direct.

Je lost dit op door expliciet het pad naar het configuratiebestand op te geven:

supervisorctl -c /var/hpwsites/system/supervisor_cli.conf

Als dit bij jouw verbinding het geval is, vervang dan in alle onderstaande voorbeelden "supervisorctl" door dit volledige commando.

De belangrijkste basiscommando's

Hieronder vind je de commando's die je het meest zult gebruiken, bijvoorbeeld tijdens of na het deployen van een nieuwe release.

Status van processen bekijken

Om te zien welke processen er zijn geconfigureerd en wat hun huidige status is, gebruik je het status commando:


supervisorctl status


Voorbeeld output:
Quote
laravel-worker:worker-00 RUNNING pid 12345, uptime 4 days, 2:12:34
magento-queue:queue-00 STOPPED Oct 24 10:00 AM

Processen Starten, Stoppen en Herstarten

Je kunt specifieke processen afzonderlijk aansturen. Dit is essentieel als je de code van je workers hebt geüpdatet en je wilt dat ze de nieuwe code inladen.

  • Een proces starten:

    supervisorctl start laravel-worker:worker-00

  • Een proces stoppen:

    supervisorctl stop laravel-worker:worker-00

  • Een proces herstarten:

    supervisorctl restart laravel-worker:worker-00


Tip voor deployments: Je kunt ook alle processen tegelijk aansturen door all te gebruiken in plaats van de specifieke procesnaam:

supervisorctl restart all

Problemen oplossen en Logs bekijken (Tail)

Als een proces niet wil starten, is het uitlezen van de logs de snelste manier om erachter te komen wat er mis is in de code van de applicatie (bijvoorbeeld een fatale PHP-error of een missende databaseverbinding).

Je kunt de log output live volgen via het tail commando:

supervisorctl tail -f laravel-worker:worker-00


(Druk op Ctrl + C om het live volgen van de log te stoppen).

Veelvoorkomende statussen uitgelegd

Als je de status opvraagt, kun je verschillende statussen tegenkomen. Om het makkelijk te houden in deze editor, staan ze hieronder op een rij:

StatusBetekenisActie vereist?
RUNNINGHet proces draait probleemloos.Nee, alles werkt zoals verwacht.
STOPPEDHet proces is handmatig gestopt.Ja, gebruik start om het weer te activeren (indien gewenst).
STARTINGHet proces is momenteel aan het opstarten.Nee, wacht een paar seconden en check de status opnieuw.
FATALHet proces is gecrasht en kon niet automatisch herstart worden (vaak na meerdere mislukte pogingen).Ja, check de error logs (tail -f) om de bug in de applicatiecode te verhelpen en gebruik daarna restart.

    • Related Articles

    • E-mail migreren via IMAP met ImapSync

      Het verhuizen van je website naar LinQhost is eenvoudig, maar het migreren van je e-mail kan wat ingewikkelder zijn. Gelukkig kun je met ImapSync je e-mails eenvoudig overzetten naar je nieuwe mailomgeving bij LinQhost. In deze handleiding leggen we ...
    • De overlast van Bots, Crawlers en Spiders beperken

      Bots en crawlers helpen zoekmachines zoals Google om je website te vinden en te rangschikken. Maar te veel activiteit van deze bots kan de prestaties van je website vertragen. We bespreken hier hoe je ongewenste bots kunt tegenhouden en ervoor kunt ...
    • E-mail migreren met ImapSync

      Bij het verhuizen van jouw website naar LinQhost is het overzetten van de websitebestanden en databases geen probleem. Wanneer het gaat om jouw e-mail wordt dit al wat lastiger. Hier volgt een stappenplan om ook jouw e-mail via imap te migreren naar ...
    • Het voorkomen van simultaan draaiende cronjobs met Flock

      Cronjobs zijn taken die periodiek worden uitgevoerd en ingesteld kunnen worden via het commando crontab. Het is een eenvoudige manier om taken automatisch uit te voeren. De basis uitleg over cronjobs kun je terugvinden in een eerdere blog post op ...
    • Bestandsoverdracht met rsync

      Heb je meerdere servers? Dan kan het voorkomen dat je bestanden wilt kopiëren van de ene server naar de andere server. Om dit goed te doen nemen wij de tool rsync in gebruik. Wij leggen je graag uit hoe je dit kunt gebruiken om bestanden te kopiëren. ...