Narzędzie wiersza poleceń servbayctl
servbayctl to potężne narzędzie linii poleceń dostarczone przez ServBay, umożliwiające deweloperom bezpośrednie zarządzanie usługami SerwBay z terminala. Za pomocą servbayctl możesz wygodnie wykonywać takie operacje jak uruchamianie, zatrzymywanie, przeładowywanie, restartowanie, wymuszanie zakończenia procesu, sprawdzanie statusu oraz zatrzymanie wszystkich usług. Jest to szczególnie przydatne dla automatyzacji w skryptach, szybkiego przełączania usług lub dla tych, którzy preferują pracę w CLI.
W tym artykule opisujemy szczegółowo, jak korzystać z servbayctl, wspierane komendy, parametry oraz usługi.
Przegląd
ServBay oferuje nie tylko intuicyjny interfejs graficzny (GUI) do zarządzania lokalnym środowiskiem webowym, ale także narzędzie CLI servbayctl. Znajduje się ono w folderze script w katalogu instalacyjnym ServBay i pozwala sterować stanem różnych pakietów oprogramowania instalowanych przez ServBay jako usługi działające w tle.
Korzyści z używania servbayctl:
- Automatyzacja: Łatwo integruj zarządzanie usługami w skryptach workflow programistycznych.
- Wydajność: Szybko uruchamiaj lub zatrzymuj wybrane usługi bez otwierania GUI.
- Elastyczność: Idealne do pracy przez SSH lub w środowiskach bez interfejsu graficznego.
- Precyzyjna kontrola: Możesz wskazać dokładną usługę lub wersję.
Wymagania wstępne
Przed użyciem servbayctl upewnij się, że:
ServBay został poprawnie zainstalowany.
Masz dostęp do terminala.
(Opcjonalnie, zalecane) Dodaj katalog
/Applications/ServBay/scriptdo zmiennej środowiskowej PATH. Pozwoli to uruchamiać komendęservbayctlz dowolnego miejsca bez podawania pełnej ścieżki.Dla użytkowników Bash lub Zsh, edytuj plik
~/.bash_profile,~/.bashrc,~/.zshrclub~/.profilei dodaj linię:bashexport PATH="/Applications/ServBay/script:$PATH"1Po zapisaniu, uruchom
source ~/.bash_profile(lub odpowiedni plik), aby zastosować zmiany, lub zrestartuj terminal.
Składnia użycia
Podstawowa składnia komendy servbayctl jest następująca:
bash
servbayctl <polecenie> <usługa> [parametry]1
<polecenie>: Akcja, którą chcesz wykonać (np.start,stop,restart).<usługa>: Nazwa usługi do obsługi (np.php,mysql,caddy).[parametry]: Parametry opcjonalne, np. wersja usługi lub zakres (7.4lub-all).
Zgodnie z informacjami o użyciu servbayctl od ServBay, obsługiwane komendy i struktura wyglądają tak:
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
Uwaga: polecenie stop-all nie przyjmuje nazwy usługi ani parametrów – zatrzymuje wszystkie usługi zarządzane przez ServBay.
Szczegółowy opis dostępnych poleceń
Poniżej znajdziesz wyjaśnienia poszczególnych komend obsługiwanych przez servbayctl oraz przykłady użycia.
start – Uruchom usługę
Uruchamia wybraną usługę. Można wskazać wersję lub użyć -all, aby uruchomić wszystkie zainstalowane wersje.
bash
servbayctl start <usługa> [-all|wersja]1
- Przykład: Uruchom usługę PHP 8.1bash
servbayctl start php 8.11 - Przykład: Uruchom wszystkie zainstalowane wersje PHPbash
servbayctl start php -all1 - Przykład: Uruchom domyślną konfigurację MySQLbash
servbayctl start mysql1
stop – Zatrzymaj usługę
Zatrzymuje wybraną usługę. Można wskazać wersję lub użyć -all, aby zatrzymać wszystkie zainstalowane wersje.
bash
servbayctl stop <usługa> [-all|wersja]1
- Przykład: Zatrzymaj PHP 7.4bash
servbayctl stop php 7.41 - Przykład: Zatrzymaj wszystkie zainstalowane wersje MariaDBbash
servbayctl stop mariadb -all1 - Przykład: Zatrzymaj usługę Redisbash
servbayctl stop redis1
reload – Przeładuj konfigurację usługi
Przeładowuje konfigurację wybranej usługi. Stosowane, gdy zmieniasz pliki konfiguracyjne i chcesz zastosować zmiany bez pełnego restartu. Nie wszystkie usługi wspierają hot-reload.
bash
servbayctl reload <usługa> [-all|wersja]1
- Przykład: Przeładuj konfigurację serwera Caddybash
servbayctl reload caddy1 - Przykład: Przeładuj konfiguracje wszystkich zainstalowanych wersji PHP (jeśli obsługiwane)bash
servbayctl reload php -all1
restart – Restartuj usługę
Restartuje wybraną usługę – odpowiada zatrzymaniu i ponownemu uruchomieniu.
bash
servbayctl restart <usługa> [-all|wersja]1
- Przykład: Restartuj bazę danych PostgreSQLbash
servbayctl restart pgsql1 - Przykład: Restartuj wszystkie zainstalowane wersje Redis (jeśli masz ich kilka)bash
servbayctl restart redis -all1
kill – Wymuś zakończenie procesu usługi
Wymusza zakończenie procesu wybranej usługi. Używaj ostrożnie – może skutkować utratą lub uszkodzeniem danych (szczególnie w przypadku baz danych). Zalecana tylko, gdy standardowe zatrzymanie zawiedzie.
bash
servbayctl kill <usługa> [-all|wersja]1
- Przykład: Wymuś zakończenie PHP 7.4bash
servbayctl kill php 7.41 - Przykład: Wymuś zakończenie wszystkich instancji Memcachedbash
servbayctl kill memcached -all1
status – Sprawdź stan usługi
Wyświetla bieżący status konkretnej usługi (czy jest uruchomiona).
bash
servbayctl status <usługa> [-all|wersja]1
- Przykład: Sprawdź status usługi Caddybash
servbayctl status caddy1 - Przykład: Sprawdź status wszystkich wersji MySQLbash
servbayctl status mysql -all1
stop-all – Zatrzymaj wszystkie usługi ServBay
Zatrzymuje wszystkie aktualnie działające w tle usługi zarządzane przez ServBay. To polecenie globalne, nie przyjmuje parametrów ani nazw usług.
bash
servbayctl stop-all1
- Przykład: Zatrzymaj wszystkie usługi ServBaybash
servbayctl stop-all1
Lista obsługiwanych usług
Zgodnie z Usage, servbayctl może bezpośrednio zarządzać poniższymi typami usług w tle:
php: Zarządzanie różnymi wersjami procesów PHP-FPM.mariadb: Serwis bazy danych MariaDB.mysql: Serwis bazy danych MySQL.postgresql: Serwis bazy danych PostgreSQL.redis: Serwis pamięci cache/bazy danych Redis.memcached: Serwis cache Memcached.caddy: Serwer WWW Caddy.nginx: Serwer WWW Nginx.apache: Serwer HTTP Apache.dnsmasq: Wewnętrzna usługa DNS ServBay.mongodb: Serwis bazy danych MongoDB.rabbitmq: Usługa kolejkowania RabbitMQ.cloudflared: Usługa tunelu Cloudflare (jeśli zainstalowana i skonfigurowana).frpc: Klient Fatedier/frp (jeśli zainstalowany i skonfigurowany).mailpit: Usługa Mailpit do przechwytywania emaili.web: Usługa webowa (może dotyczyć aktywnych serwerów WWW lub powiązanych usług ServBay – zależnie od ustawień).ollama: Lokalna usługa modeli językowych Ollama.
Uwaga: Obecnie servbayctl pozwala bezpośrednio zarządzać także Nginx, Apache i wieloma innymi podstawowymi usługami. Choć ServBay umożliwia instalację wielu innych pakietów (Java, Python, Go, .NET, Ruby, Rust itp.), te zwykle nie są obsługiwane przez servbayctl jako niezależne usługi w tle – korzystaj z nich przez terminal lub z dedykowanego menedżera. servbayctl skupia się na rdzeniowych usługach działających jako demony w tle.
Przykłady typowych zastosowań
Oto kilka codziennych scenariuszy z użyciem servbayctl:
Szybka zmiana wersji PHP do testów:
bashservbayctl stop php -all servbayctl start php 8.21
2Restart bazy danych po zmianie konfiguracji:
bash# Załóżmy, że zaktualizowałeś my.cnf lub my.ini servbayctl restart mysql1
2Upewnij się, że wszystkie usługi są zatrzymane, np. przed wyłączeniem systemu lub aktualizacją ServBay:
bashservbayctl stop-all1Sprawdź, czy serwer WWW jest uruchomiony:
bashservbayctl status caddy1Automatyczne uruchamianie środowiska developerskiego przez skrypt:
bash#!/bin/bash echo "Zatrzymywanie wszystkich usług ServBay..." servbayctl stop-all echo "Uruchamianie wymaganych usług..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Usługi ServBay uruchomione."1
2
3
4
5
6
7
8
9
10
11
12
Wskazówki i dobre praktyki
- Dodaj do PATH: Zdecydowanie zalecamy dodanie katalogu
servbayctldo PATH, aby upraszczać używanie poleceń. - Ostrożnie z
kill: Komendakillwymusza zakończenie procesu – może prowadzić do utraty nieskonczonych danych lub niestabilności. Używaj, gdy standardowe zatrzymanie nie działa; preferujstoplubrestart. stop-allto operacja globalna: Komenda ta wyłączy wszystkie usługi w tle zarządzane przez ServBay. Upewnij się, że tego właśnie chcesz.- Parametr wersji: Jeśli podajesz parametr wersji, upewnij się, że jest on zgodny z faktycznie zainstalowanym i obsługiwanym przez ServBay pakietem. Wersje możesz sprawdzić w aplikacji GUI ServBay.
- Obsługa błędów: W przypadku niepowodzenia,
servbayctlwyświetli komunikat o błędzie. Sprawdź logi w katalogulogsw instalacji ServBay, aby uzyskać szczegółowe informacje. - Łącz GUI i CLI:
servbayctlto narzędzie uzupełniające GUI. W przypadku złożonych konfiguracji lub ogólnego podglądu – GUI zwykle będzie wygodniejsze.
FAQ – Najczęściej zadawane pytania
Q: Komenda servbayctl zgłasza błąd command not found. Co zrobić?
A: Najpewniej katalog /Applications/ServBay/script nie został dodany do zmiennej PATH. Dodaj go zgodnie z instrukcją z rozdziału „Wymagania wstępne”.
Q: Uruchamiam servbayctl start <usługa>, ale usługa się nie uruchamia. Co zrobić?
A:
- Ponownie sprawdź status komendą
servbayctl status <usługa>. - Zajrzyj do folderu
logsw katalogu głównym ServBay i znajdź logi błędów dla danej usługi – zazwyczaj szczegóły awarii znajdują się tam. - Spróbuj uruchomić tę samą usługę przez GUI – bywa, że GUI pokaże bardziej przejrzyste komunikaty błędów.
- Sprawdź, czy plik konfiguracyjny usługi jest poprawny.
Q: Czy parametr -all działa dla wszystkich usług?
A: -all jest użyteczny przede wszystkim przy usługach pozwalających na instalację wielu wersji, np. PHP. W przypadku większości baz danych (MySQL, PostgreSQL, itd.) i serwerów www (Caddy), zazwyczaj działa tylko pojedyncza instancja – wtedy podanie -all nie robi praktycznej różnicy (ale można użyć dla jawności). Przy usługach typu Redis lub Memcached, gdzie możliwy jest running wielu instancji na różnych portach, -all prawdopodobnie steruje wszystkimi (dokładne zachowanie zależy od implementacji ServBay).
Podsumowanie
servbayctl to potężny interfejs CLI dla deweloperów korzystających z ServBay, który znacznie zwiększa elastyczność i wydajność zarządzania środowiskiem developerskim. Opanowując komendy takie jak start, stop, reload, restart, kill, status, stop-all oraz wykorzystując parametry version i -all, możesz swobodnie kontrolować w terminalu usługi wspierane przez ServBay – od PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy i innych – co pozwala lepiej automatyzować workflow i usprawnić codzienną pracę programisty.
