
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.
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.
Hieronder vind je de commando's die je het meest zult gebruiken, bijvoorbeeld tijdens of na het deployen van een nieuwe release.
Om te zien welke processen er zijn geconfigureerd en wat hun huidige status is, gebruik je het status commando:
supervisorctl status
laravel-worker:worker-00 RUNNING pid 12345, uptime 4 days, 2:12:34
magento-queue:queue-00 STOPPED Oct 24 10:00 AM
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
all te gebruiken in plaats van de specifieke procesnaam:supervisorctl restart all
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).
Als je de status opvraagt, kun je verschillende statussen tegenkomen. Om het makkelijk te houden in deze editor, staan ze hieronder op een rij:
| Status | Betekenis | Actie vereist? |
| RUNNING | Het proces draait probleemloos. | Nee, alles werkt zoals verwacht. |
| STOPPED | Het proces is handmatig gestopt. | Ja, gebruik start om het weer te activeren (indien gewenst). |
| STARTING | Het proces is momenteel aan het opstarten. | Nee, wacht een paar seconden en check de status opnieuw. |
| FATAL | Het 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. |