Kommandozeilentool servbayctl
servbayctl
ist ein leistungsstarkes Kommandozeilentool von ServBay, das Entwicklern ermöglicht, ServBay-Backend-Dienste direkt über das Terminal zu verwalten. Mit servbayctl
können Sie bequem Dienste starten, stoppen, neu laden, neu starten, beenden, den Status prüfen und alle Dienste gleichzeitig anhalten – besonders nützlich für Skripting, schnelles Umschalten von Dienstzuständen oder Nutzer, die eine Kommandozeilenschnittstelle bevorzugen.
In diesem Artikel finden Sie eine umfassende Anleitung zur Nutzung von servbayctl
, Beschreibung der unterstützten Befehle, Parameter und Dienste.
Übersicht
ServBay bietet nicht nur eine benutzerfreundliche grafische Oberfläche (GUI) zur Verwaltung Ihrer lokalen Web-Entwicklungsumgebung, sondern beinhaltet auch das Kommandozeilentool servbayctl
. Dieses Tool befindet sich im script
-Ordner innerhalb des ServBay-Installationsverzeichnisses und ermöglicht es Ihnen, mit einfachen Kommandos den Status der in ServBay installierten Softwarepakete als Hintergrunddienste zu steuern.
Zu den Vorteilen der Nutzung von servbayctl
gehören:
- Automatisierung: Einfache Integration der Dienstverwaltung in Ihre Entwicklungs-Workflows und Automatisierungsskripte.
- Effizienz: Dienste schnell starten oder stoppen, ohne die GUI öffnen zu müssen.
- Flexibilität: Ideal für Remote-SSH-Verbindungen oder headless Umgebungen.
- Präzise Steuerung: Kommandos können auf bestimmte Dienste oder Versionen angewendet werden.
Voraussetzungen
Bevor Sie servbayctl
verwenden, stellen Sie sicher:
ServBay ist ordnungsgemäß installiert.
Sie haben Terminalzugriff.
(Optional, empfohlen): Fügen Sie das Verzeichnis
/Applications/ServBay/script
Ihrer PATH-Umgebungsvariable hinzu, damit Sieservbayctl
von überall ohne Angabe des vollständigen Pfads ausführen können.Für Bash- oder Zsh-Nutzer: Bearbeiten Sie Ihre Datei
~/.bash_profile
,~/.bashrc
,~/.zshrc
oder~/.profile
und fügen Sie folgende Zeile hinzu:bashexport PATH="/Applications/ServBay/script:$PATH"
1Datei speichern und anschließend
source ~/.bash_profile
(bzw. die bearbeitete Datei) ausführen oder das Terminal neu starten, um die Änderungen wirksam zu machen.
Verwendungssyntax
Die grundlegende Syntax für das servbayctl
-Kommando lautet:
servbayctl <Befehl> <Dienst> [Parameter]
<Befehl>
: Die gewünschte Aktion (z. B.start
,stop
,restart
).<Dienst>
: Name des zu steuernden Dienstes (z. B.php
,mysql
,caddy
).[Parameter]
: Optional. Zur Angabe der Version oder des Umfangs des Dienstes (z. B.7.4
oder-all
).
Laut der Usage-Info von ServBay werden folgende Kommandos und die Syntaxstruktur unterstützt:
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]
Hinweis: Das Kommando stop-all
akzeptiert weder Dienstnamen noch Parameter und stoppt alle von ServBay verwalteten Dienste.
Detaillierte Befehlsbeschreibung
Im Folgenden werden die von servbayctl
unterstützten Kommandos, deren Funktionen und Anwendungsbeispiele erläutert:
start
– Dienst starten
Startet den angegebenen Dienst. Sie können eine bestimmte Version wählen oder mit dem Parameter -all
alle installierten Versionen starten.
servbayctl start <Dienst> [-all|version]
- Beispiel: Starten von PHP 8.1bash
servbayctl start php 8.1
1 - Beispiel: Alle installierten PHP-Versionen startenbash
servbayctl start php -all
1 - Beispiel: Standard-MySQL startenbash
servbayctl start mysql
1
stop
– Dienst stoppen
Stoppt den angegebenen Dienst. Auch hier kann eine konkrete Version gewählt oder mit -all
alle Versionen gestoppt werden.
servbayctl stop <Dienst> [-all|version]
- Beispiel: PHP 7.4 stoppenbash
servbayctl stop php 7.4
1 - Beispiel: Alle installierten MariaDB-Versionen stoppenbash
servbayctl stop mariadb -all
1 - Beispiel: Redis stoppenbash
servbayctl stop redis
1
reload
– Dienstkonfiguration neu laden
Lädt die Konfiguration des gewählten Dienstes neu. Dies ist nach Änderungen an Konfigurationsdateien hilfreich, ohne den Dienst komplett neuzustarten. Nicht alle Dienste unterstützen Reloads im laufenden Betrieb.
servbayctl reload <Dienst> [-all|version]
- Beispiel: Caddy-Konfiguration neu ladenbash
servbayctl reload caddy
1 - Beispiel: Alle installierten PHP-Versionen neu laden (sofern unterstützt)bash
servbayctl reload php -all
1
restart
– Dienst neustarten
Startet den Dienst neu (Stopp gefolgt von Start).
servbayctl restart <Dienst> [-all|version]
- Beispiel: PostgreSQL neustartenbash
servbayctl restart pgsql
1 - Beispiel: Alle installierten Redis-Versionen neu startenbash
servbayctl restart redis -all
1
kill
– Dienstprozess erzwingen/beenden
Erzwingt das sofortige Beenden des Dienstprozesses. Vorsicht: Dies kann, insbesondere bei Datenbankdiensten, Datenverlust oder Schäden verursachen und sollte nur angewendet werden, wenn andere Wege fehlschlagen.
servbayctl kill <Dienst> [-all|version]
- Beispiel: PHP 7.4 Prozess erzwingen/beendenbash
servbayctl kill php 7.4
1 - Beispiel: Alle Memcached-Prozesse beendenbash
servbayctl kill memcached -all
1
status
– Dienststatus anzeigen
Zeigt den aktuellen Status (laufend/nicht laufend) des Dienstes an.
servbayctl status <Dienst> [-all|version]
- Beispiel: Status von Caddy anzeigenbash
servbayctl status caddy
1 - Beispiel: Status aller installierten MySQL-Versionen anzeigenbash
servbayctl status mysql -all
1
stop-all
– Alle ServBay-Dienste stoppen
Beendet alle von ServBay verwalteten Hintergrunddienste. stop-all
ist ein globales Kommando ohne Dienstnamen- oder Versionsparameter.
servbayctl stop-all
- Beispiel: Alle ServBay-Dienste beendenbash
servbayctl stop-all
1
Unterstützte Dienste (Service-Liste)
Basierend auf der Usage-Info von servbayctl
kann das Tool folgende Arten von Hintergrunddiensten direkt steuern:
php
: Verwaltung verschiedener PHP-FPM-Versionen.mariadb
: Verwaltung des MariaDB-Datenbankdienstes.mysql
: Verwaltung des MySQL-Datenbankdienstes.postgresql
: Verwaltung des PostgreSQL-Datenbankdienstes.redis
: Verwaltung des Redis Cache-/Datenbankdienstes.memcached
: Verwaltung des Memcached Cache-Dienstes.caddy
: Verwaltung des Caddy Webservers.nginx
: Verwaltung des Nginx Webservers.apache
: Verwaltung des Apache HTTP Servers.dnsmasq
: Verwaltung des eingebetteten DNS-Dienstes von ServBay.mongodb
: Verwaltung des MongoDB-Datenbankdienstes.rabbitmq
: Verwaltung des RabbitMQ-Nachrichtenqueue-Dienstes.cloudflared
: Verwaltung des Cloudflare Tunnel-Dienstes (sofern installiert/konfiguriert).frpc
: Verwaltung des Fatedier/frp-Clientdienstes (sofern installiert/konfiguriert).mailpit
: Verwaltung des Mailpit Mail-Capture-Dienstes.web
: Verwaltung des Webdienstes – je nach Verwendung z.B. aktiver Webserver oder ServBay Webschnittstelle.ollama
: Verwaltung des Ollama Local LLM-Dienstes (Large Language Model).
Beachten Sie: Ab sofort kann servbayctl
viele Kern-Hintergrunddienste wie Nginx und Apache direkt verwalten. Zwar unterstützt ServBay auch viele andere Softwarepakete (z. B. Java, Python, Go, .NET, Ruby, Rust etc.), diese werden jedoch zumeist nicht als eigenständige und von servbayctl
kontrollierbare Dienste betrieben, sondern per Terminal oder eigene Verwaltungswege verwaltet. Der Hauptfokus von servbayctl
liegt auf der Steuerung der genannten Kern-Hintergrunddienste.
Praxisbeispiele für den Einsatz
Hier einige gängige Szenarien für die Nutzung von servbayctl
:
PHP-Version zum Testen schnell wechseln:
bashservbayctl stop php -all servbayctl start php 8.2
1
2Datenbankdienst nach Konfigurationsänderung neustarten:
bash# Angenommen, Sie haben my.cnf oder my.ini geändert servbayctl restart mysql
1
2Vor Systemshutdown oder ServBay-Update sicherstellen, dass alle Dienste gestoppt sind:
bashservbayctl stop-all
1Prüfen, ob der Webserver läuft:
bashservbayctl status caddy
1Entwicklungsumgebung per Skript automatisch starten:
bash#!/bin/bash echo "Stopping all ServBay services..." servbayctl stop-all echo "Starting required services..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "ServBay services started."
1
2
3
4
5
6
7
8
9
10
11
12
Hinweise & Best Practices
- Zur PATH-Variable hinzufügen: Es wird dringend empfohlen, das Verzeichnis mit
servbayctl
zum PATH hinzuzufügen, um die Nutzung zu erleichtern. - Vorsicht mit
kill
: Daskill
-Kommando beendet Prozesse abrupt, was Datenverlust oder inkonsistente Zustände verursachen kann, insbesondere bei Datenbanken. Wenn möglich, zuerststop
oderrestart
verwenden. stop-all
ist ein globaler Befehl: Mitstop-all
werden sämtliche ServBay-Dienste beendet – nutzen Sie diesen Befehl mit Bedacht.- Versionsparameter: Stellen Sie sicher, dass Sie beim Einsatz von Versionsparametern tatsächlich installierte und unterstützte Versionen verwenden. Über die GUI können Sie installierte Pakete einsehen.
- Fehlerbehandlung: Gibt
servbayctl
beim Ausführen einen Fehler aus, prüfen Sie die ggf. ausgegebenen Fehlermeldungen oder die Logdateien im ServBay-Verzeichnis unterlogs
für Details. - GUI und CLI kombinieren:
servbayctl
ist eine Ergänzung zur GUI. Für erweiterte Übersicht oder umfangreiche Konfigurationsänderungen bleibt die GUI empfehlenswert.
Häufig gestellte Fragen (FAQ)
F: Beim Ausführen von servbayctl
erscheint die Meldung command not found
– was tun?
A: Wahrscheinlich wurde das Verzeichnis /Applications/ServBay/script
noch nicht zur PATH-Umgebungsvariable hinzugefügt. Folgen Sie den Hinweisen im Abschnitt "Voraussetzungen" dieses Dokuments, um das Verzeichnis dem PATH hinzuzufügen.
F: Ich starte einen Dienst mit servbayctl start <Dienst>
, aber er läuft nicht – wie kann ich den Fehler finden?
A:
- Prüfen Sie mit
servbayctl status <Dienst>
erneut den Status. - Sehen Sie im
logs
-Ordner im Installationsverzeichnis von ServBay nach – die Fehler-Logdateien enthalten meist detaillierte Infos zur Ursache. - Versuchen Sie, den Dienst stattdessen über die GUI zu starten – diese gibt oft nutzerfreundlichere Fehlermeldungen aus.
- Kontrollieren Sie die Konfigurationsdateien des Dienstes auf Fehler.
F: Gilt der Parameter -all
für alle Dienste?
A: Der Parameter -all
ist vor allem für Dienste gedacht, bei denen mehrere Versionen installiert sein können (wie PHP). Für die meisten Datenbanken (MySQL, PostgreSQL usw.) und Webserver (Caddy) läuft üblicherweise nur eine Instanz – dort hat die Verwendung von -all
denselben Effekt wie das Weglassen des Versionsparameters. Dienste wie Redis oder Memcached, die auf mehreren Ports parallel laufen können, werden mit -all
ggf. alle Instanzen gesteuert (je nach ServBay-Implementierung).
Fazit
servbayctl
ist eine leistungsfähige Kommandozeilenschnittstelle von ServBay für Entwickler – sie steigert die Flexibilität und Effizienz beim Verwalten der lokalen Entwicklungsumgebung erheblich. Durch gezielten Einsatz von Befehlen wie start
, stop
, reload
, restart
, kill
, status
und stop-all
sowie den Parametern version
oder -all
behalten Sie mühelos die Kontrolle über von ServBay unterstützte Dienste wie PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy und viele weitere. Dadurch wird Ihre Automatisierung vereinfacht und Ihre Entwicklungs-Workflows optimal unterstützt.