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/scriptIhrer PATH-Umgebungsvariable hinzu, damit Sieservbayctlvon überall ohne Angabe des vollständigen Pfads ausführen können.Für Bash- oder Zsh-Nutzer: Bearbeiten Sie Ihre Datei
~/.bash_profile,~/.bashrc,~/.zshrcoder~/.profileund 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:
bash
servbayctl <Befehl> <Dienst> [Parameter]1
<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.4oder-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]1
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.
bash
servbayctl start <Dienst> [-all|version]1
- Beispiel: Starten von PHP 8.1bash
servbayctl start php 8.11 - Beispiel: Alle installierten PHP-Versionen startenbash
servbayctl start php -all1 - Beispiel: Standard-MySQL startenbash
servbayctl start mysql1
stop – Dienst stoppen
Stoppt den angegebenen Dienst. Auch hier kann eine konkrete Version gewählt oder mit -all alle Versionen gestoppt werden.
bash
servbayctl stop <Dienst> [-all|version]1
- Beispiel: PHP 7.4 stoppenbash
servbayctl stop php 7.41 - Beispiel: Alle installierten MariaDB-Versionen stoppenbash
servbayctl stop mariadb -all1 - Beispiel: Redis stoppenbash
servbayctl stop redis1
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.
bash
servbayctl reload <Dienst> [-all|version]1
- Beispiel: Caddy-Konfiguration neu ladenbash
servbayctl reload caddy1 - Beispiel: Alle installierten PHP-Versionen neu laden (sofern unterstützt)bash
servbayctl reload php -all1
restart – Dienst neustarten
Startet den Dienst neu (Stopp gefolgt von Start).
bash
servbayctl restart <Dienst> [-all|version]1
- Beispiel: PostgreSQL neustartenbash
servbayctl restart pgsql1 - Beispiel: Alle installierten Redis-Versionen neu startenbash
servbayctl restart redis -all1
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.
bash
servbayctl kill <Dienst> [-all|version]1
- Beispiel: PHP 7.4 Prozess erzwingen/beendenbash
servbayctl kill php 7.41 - Beispiel: Alle Memcached-Prozesse beendenbash
servbayctl kill memcached -all1
status – Dienststatus anzeigen
Zeigt den aktuellen Status (laufend/nicht laufend) des Dienstes an.
bash
servbayctl status <Dienst> [-all|version]1
- Beispiel: Status von Caddy anzeigenbash
servbayctl status caddy1 - Beispiel: Status aller installierten MySQL-Versionen anzeigenbash
servbayctl status mysql -all1
stop-all – Alle ServBay-Dienste stoppen
Beendet alle von ServBay verwalteten Hintergrunddienste. stop-all ist ein globales Kommando ohne Dienstnamen- oder Versionsparameter.
bash
servbayctl stop-all1
- Beispiel: Alle ServBay-Dienste beendenbash
servbayctl stop-all1
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.21
2Datenbankdienst nach Konfigurationsänderung neustarten:
bash# Angenommen, Sie haben my.cnf oder my.ini geändert servbayctl restart mysql1
2Vor Systemshutdown oder ServBay-Update sicherstellen, dass alle Dienste gestoppt sind:
bashservbayctl stop-all1Prüfen, ob der Webserver läuft:
bashservbayctl status caddy1Entwicklungsumgebung 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
servbayctlzum 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, zuerststopoderrestartverwenden. stop-allist ein globaler Befehl: Mitstop-allwerden 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
servbayctlbeim Ausführen einen Fehler aus, prüfen Sie die ggf. ausgegebenen Fehlermeldungen oder die Logdateien im ServBay-Verzeichnis unterlogsfür Details. - GUI und CLI kombinieren:
servbayctlist 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.
