Commandoregeltool servbayctl
servbayctl is een krachtige opdrachtregeltool, aangeboden door ServBay, waarmee ontwikkelaars rechtstreeks vanuit de terminal ServBay-backendservices kunnen beheren. Met servbayctl kun je eenvoudig diensten starten, stoppen, herladen, herstarten, geforceerd beëindigen, de status bekijken en alle services in één keer stoppen. Dit is vooral handig voor script-automatisering, snel schakelen tussen verschillende service-statussen of wanneer je liever de opdrachtregelinterface gebruikt.
In dit artikel lees je een uitgebreide handleiding voor het gebruik van servbayctl, inclusief ondersteunde commando's, parameters en services.
Overzicht
ServBay biedt niet alleen een gebruiksvriendelijke grafische interface (GUI) om je lokale webontwikkelomgeving te beheren, maar bevat ook het opdrachtregelhulpmiddel (CLI) servbayctl. servbayctl vind je in de map script binnen de ServBay-installatiemap en geeft je de mogelijkheid om met eenvoudige commando's de verschillende softwarepakketten als achtergrondservices te beheren.
De voordelen van servbayctl:
- Automatisering: Integreer servicebeheer moeiteloos in je scripts en ontwikkelworkflow.
- Efficiëntie: Start of stop specifieke diensten snel zonder de GUI te openen.
- Flexibiliteit: Ideaal bij gebruik via remote SSH of in headless omgevingen.
- Nauwkeurige controle: Geef eenvoudig het gewenste specifieke service of versie op.
Voorwaarden
Zorg ervoor dat je aan het volgende voldoet voordat je servbayctl gebruikt:
ServBay is succesvol geïnstalleerd.
Je hebt toegang tot een terminal.
(Optioneel, aanbevolen) Voeg de map
/Applications/ServBay/scripttoe aan de PATH-omgevingsvariabele van je systeem. Hierdoor kun jeservbayctlvanaf elke locatie aanroepen zonder het volledige pad te hoeven typen.Voor Bash- of Zsh-gebruikers, voeg de volgende regel toe aan je
~/.bash_profile,~/.bashrc,~/.zshrcof~/.profile:bashexport PATH="/Applications/ServBay/script:$PATH"1Sla het bestand op en voer
source ~/.bash_profileuit (of het bestand dat je zojuist hebt aangepast), of herstart de terminal zodat de wijziging actief wordt.
Syntax voor gebruik
Het basisgebruik van het servbayctl commando ziet er als volgt uit:
bash
servbayctl <command> <service> [parameters]1
<command>: De gewenste handeling (zoalsstart,stop,restart).<service>: De naam van de service waarop je wil opereren (zoalsphp,mysql,caddy).[parameters]: Optionele parameters voor versie of bereik (zoals7.4of-all).
Volgens de gebruiksinformatie van servbayctl, zijn de ondersteunde commando's en de basisstructuur als volgt:
Usage: /Applications/ServBay/script/servbayctl {start|stop|reload|restart|kill|status|stop-all} {php|mariadb|mysql|postgresql|redis|memcached|caddy|nginx|apache|dnsmasq|mongodb|rabbitmq|cloudflared|frpc|mailpit|web|ollama} [-all|version]1
Let op: Het commando stop-all accepteert geen servicenaam of extra parameter; het zal álle door ServBay beheerde services stoppen.
Gedetailleerde uitleg van ondersteunde commando's
Hier vind je een overzicht van alle commando's die door servbayctl worden ondersteund, inclusief uitleg en voorbeelden.
start - Service starten
Start de opgegeven service. Je kunt een specifieke versie aanvullen óf met de -all parameter alle geïnstalleerde versies opstarten.
bash
servbayctl start <service> [-all|version]1
- Voorbeeld: Start PHP 8.1 servicebash
servbayctl start php 8.11 - Voorbeeld: Start alle geïnstalleerde PHP-versiesbash
servbayctl start php -all1 - Voorbeeld: Start MySQL service met de standaardconfiguratiebash
servbayctl start mysql1
stop - Service stoppen
Stopt de aangegeven service. Je kunt een specifieke versie vermelden, of met -all álle aanwezige versies stoppen.
bash
servbayctl stop <service> [-all|version]1
- Voorbeeld: Stop PHP 7.4 servicebash
servbayctl stop php 7.41 - Voorbeeld: Stop alle geïnstalleerde MariaDB-versiesbash
servbayctl stop mariadb -all1 - Voorbeeld: Stop Redis servicebash
servbayctl stop redis1
reload - Serviceconfiguratie herladen
Herladen van de configuratie voor de betreffende service. Ideaal als je configuratiebestanden hebt aangepast en die wijziging actief wilt maken, zonder de service volledig te herstarten. Niet alle services ondersteunen hot-reload.
bash
servbayctl reload <service> [-all|version]1
- Voorbeeld: Herlaad Caddy webserver-configuratiebash
servbayctl reload caddy1 - Voorbeeld: Herlaad configuratie voor alle PHP-versies (indien ondersteund)bash
servbayctl reload php -all1
restart - Service herstarten
Herstart de opgegeven service, wat hetzelfde is als eerst stoppen en daarna direct weer starten.
bash
servbayctl restart <service> [-all|version]1
- Voorbeeld: Herstart PostgreSQL databaseservicebash
servbayctl restart pgsql1 - Voorbeeld: Herstart alle geïnstalleerde Redis-versies (indien meer dan één aanwezig)bash
servbayctl restart redis -all1
kill - Serviceproces geforceerd beëindigen
Beëindig het proces van de benoemde service geforceerd. Gebruik dit met voorzichtigheid, zeker bij databases, aangezien er data verloren kan gaan of schade aan data kan ontstaan. Dit commando is bedoeld voor situaties waarin de service niet op normale wijze stopt.
bash
servbayctl kill <service> [-all|version]1
- Voorbeeld: Forceer het beëindigen van PHP 7.4 serviceprocesbash
servbayctl kill php 7.41 - Voorbeeld: Forceer alle Memcached processen te stoppenbash
servbayctl kill memcached -all1
status - Service-status opvragen
Bekijk of een bepaalde service draait (of niet).
bash
servbayctl status <service> [-all|version]1
- Voorbeeld: Controleer de status van de Caddy servicebash
servbayctl status caddy1 - Voorbeeld: Bekijk de status van alle geïnstalleerde MySQL-versiesbash
servbayctl status mysql -all1
stop-all - Alle ServBay-services stoppen
Stopt álle door ServBay beheerde, op dit moment draaiende backend-services. Dit is een overkoepelend commando dat geen servicenamen of versies als parameter accepteert.
bash
servbayctl stop-all1
- Voorbeeld: Stop alle services die onder ServBay draaienbash
servbayctl stop-all1
Ondersteunde services
Volgens de Usage-informatie van servbayctl kun je de volgende types achtergrondservices rechtstreeks beheren:
php: Beheer van verschillende PHP-FPM versies.mariadb: Beheer van MariaDB database.mysql: Beheer van MySQL database.postgresql: Beheer van PostgreSQL database.redis: Beheer van Redis cache/database.memcached: Beheer van Memcached cache.caddy: Beheer van de Caddy webserver.nginx: Beheer van de Nginx webserver.apache: Beheer van de Apache HTTP server.dnsmasq: Beheer van de ingebouwde DNS-service van ServBay.mongodb: Beheer van MongoDB database.rabbitmq: Beheer van RabbitMQ message queue.cloudflared: Beheer van Cloudflare Tunnel service (mits geïnstalleerd en geconfigureerd).frpc: Beheer van Fatedier/frp client service (mits geïnstalleerd en geconfigureerd).mailpit: Beheer van Mailpit mailcatcher.web: Beheer van webservices (specifieke betekenis is afhankelijk van jouw gebruik, bijvoorbeeld actieve webservers of ServBay-gerelateerde webinterfaces).ollama: Beheer van Ollama, lokaal groottaalmodellendienst.
Let op, servbayctl kan nu direct verschillende kern-backendservices beheren, waaronder Nginx en Apache. Hoewel ServBay het mogelijk maakt om talloze andere pakketten te installeren (zoals Java, Python, Go, .NET, Ruby, Rust enz.), draaien deze pakketten doorgaans níet als backendservice beheerd door servbayctl. Ze worden meestal direct gestart via de terminal of via hun eigen specifieke tooling. servbayctl is primair gefocust op beheer van bovenstaande kern-backendservices.
Praktische gebruiksvoorbeelden
Hier wat scenario’s waarin servbayctl vaak gebruikt wordt:
Snel schakelen tussen PHP-versies voor testdoeleinden:
bashservbayctl stop php -all servbayctl start php 8.21
2Database-service herstarten na configuratiewijzigingen:
bash# Stel je hebt my.cnf of my.ini aangepast servbayctl restart mysql1
2Zorgen dat alle services gestopt zijn, bijvoorbeeld voor systeemuitschakeling of update van ServBay:
bashservbayctl stop-all1Controleren of de webserver draait:
bashservbayctl status caddy1Ontwikkelomgeving automatisch opstarten via een script:
bash#!/bin/bash echo "Alle ServBay services worden gestopt..." servbayctl stop-all echo "Benodigde services starten..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "ServBay services zijn gestart."1
2
3
4
5
6
7
8
9
10
11
12
Let op & Best practices
- Voeg toe aan PATH: Het wordt sterk aangeraden om de map met
servbayctltoe te voegen aan je PATH-variabele voor eenvoudiger gebruik. - Wees voorzichtig met
kill: Het gebruik van hetkill-commando kan tot niet-opgeslagen gegevensverlies of foutieve servicestatus leiden. Gebruik het alleen wanneer normalestopofrestartniet werken. stop-allis allesomvattend: Metstop-allstop je alle backendservices die door ServBay beheerd worden. Wees zeker dat je dit wilt.- Versie-parameter: Gebruik bij het opgeven van een versie altijd een versie die daadwerkelijk geïnstalleerd en ondersteund is door ServBay. Je kunt geïnstalleerde versies raadplegen in de GUI van ServBay.
- Foutrapportage: Als een
servbayctl-commando faalt, wordt het foutbericht in de terminal weergegeven. Los problemen op aan de hand van het bericht, of raadpleeg relevante logbestanden (meestal te vinden in de maplogsin de ServBay-installatiemap). - GUI en CLI aanvullen elkaar aan:
servbayctlis een aanvulling op de GUI. Voor geavanceerde configuratie of een overzicht is de GUI doorgaans praktischer.
Veelgestelde vragen (FAQ)
Vraag: Bij uitvoeren van servbayctl krijg ik de melding command not found. Wat nu?
Antwoord: Dit betekent meestal dat /Applications/ServBay/script nog niet aan je PATH-variabele is toegevoegd. Raadpleeg het onderdeel "Voorwaarden" hierboven om dit alsnog te doen.
Vraag: Ik heb servbayctl start <service> gebruikt, maar de service start niet. Hoe los ik dit op?
Antwoord:
- Controleer nogmaals de status:
servbayctl status <service>. - Bekijk foutlogbestanden in de map
logsvan de ServBay-installatie voor meer informatie over waarom de service niet start. - Probeer dezelfde service via de ServBay-GUI te starten; wellicht verschijnen daar meer informatieve foutmeldingen.
- Controleer de configuratiebestanden van de betreffende service op fouten.
Vraag: Is de -all parameter voor alle services bruikbaar?
Antwoord: -all is vooral bedoeld voor diensten die in meerdere versies geïnstalleerd kunnen zijn, zoals PHP. Voor de meeste databases (MySQL, PostgreSQL) en webservers (Caddy) draait meestal maar één instantie, waardoor -all hetzelfde werkt als geen versie opgeven. Voor diensten zoals Redis of Memcached (die via verschillende poorten in meerdere instanties aanwezig kunnen zijn), kan -all juist álle instanties benaderen – de precieze werking hangt af van hoe ServBay dit achter de schermen regelt.
Samenvatting
servbayctl is het krachtige opdrachtregelhulpmiddel van ServBay, dat ontwikkelaars maximale flexibiliteit en efficiëntie biedt bij het beheren van lokale ontwikkelomgevingsservices. Door beheersing van de verschillende commando’s – zoals start, stop, reload, restart, kill, status en stop-all – en het effectief benutten van parameters als version en -all, kun je snel en doelgericht diensten als PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy en meer controleren. Zo kun je je ontwikkelworkflow verder automatiseren en optimaliseren en profiteer je van een soepelere ontwikkelervaring.
