Strumento da Riga di Comando servbayctl
servbayctl è un potente strumento da riga di comando fornito da ServBay, pensato per permettere agli sviluppatori di gestire direttamente dal terminale i servizi in background di ServBay. Attraverso servbayctl, puoi eseguire facilmente operazioni come avvio, arresto, ricarica, riavvio, terminazione forzata, visualizzazione dello stato e arresto di tutti i servizi, risultando particolarmente utile per la gestione automatizzata tramite script, il cambio rapido dello stato dei servizi o per chi preferisce l'interfaccia a riga di comando.
In questo articolo approfondiremo l'utilizzo di servbayctl, i comandi disponibili, i parametri e i servizi supportati.
Panoramica
ServBay offre non solo una pratica interfaccia grafica utente (GUI) per gestire il proprio ambiente web locale, ma integra anche lo strumento da riga di comando (CLI) servbayctl. Situato nella cartella script all'interno della directory d’installazione di ServBay, questo tool consente di controllare tramite semplici comandi lo stato di diversi pacchetti software installati da ServBay, eseguendoli come servizi in background.
I vantaggi di usare servbayctl includono:
- Automazione: Integra facilmente la gestione dei servizi nei tuoi workflow di sviluppo tramite script.
- Efficienza: Avvio e arresto rapidi di servizi specifici senza dover aprire la GUI.
- Flessibilità: Perfetto per connessioni SSH remote o ambienti senza interfaccia grafica.
- Controllo preciso: Possibilità di specificare il servizio o versione desiderata per ogni azione.
Prerequisiti
Prima di utilizzare servbayctl, assicurati di:
Aver installato correttamente ServBay.
Disporre dell'accesso al terminale.
(Opzionale ma consigliato) Per comodità, aggiungi la directory
/Applications/ServBay/scriptalla variabile d'ambiente PATH del sistema. In questo modo potrai eseguire il comandoservbayctlda qualsiasi posizione senza dover inserire il percorso completo.Per utenti Bash o Zsh, modifica uno dei file
~/.bash_profile,~/.bashrc,~/.zshrco~/.profile, aggiungendo la seguente riga:bashexport PATH="/Applications/ServBay/script:$PATH"1Dopo aver salvato il file, esegui
source ~/.bash_profile(o il file che hai modificato) per applicare le modifiche, oppure riavvia il terminale.
Sintassi d’Uso
La sintassi di base del comando servbayctl è la seguente:
bash
servbayctl <comando> <servizio> [parametri]1
<comando>: l'operazione che desideri eseguire (ad esempiostart,stop,restart).<servizio>: il nome del servizio che vuoi gestire (ad esempiophp,mysql,caddy).[parametri]: parametri opzionali per specificare la versione del servizio o il campo d’azione (ad esempio7.4o-all).
Secondo la guida all’uso di servbayctl fornita da ServBay, i comandi supportati e la struttura base sono:
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
Nota: il comando stop-all non accetta nomi di servizi o parametri; interrompe tutti i servizi gestiti da ServBay.
Dettaglio dei Comandi Supportati
Di seguito sono riportate le spiegazioni e gli esempi relativi ai diversi comandi supportati da servbayctl:
start - Avviare un servizio
Avvia il servizio specificato. Puoi indicare una versione specifica o utilizzare il parametro -all per avviare tutte le versioni installate del servizio.
bash
servbayctl start <servizio> [-all|version]1
- Esempio: Avvia il servizio PHP 8.1bash
servbayctl start php 8.11 - Esempio: Avvia tutte le versioni di PHP installatebash
servbayctl start php -all1 - Esempio: Avvia il servizio MySQL con la configurazione predefinitabash
servbayctl start mysql1
stop - Arrestare un servizio
Arresta il servizio selezionato. Puoi specificare una versione particolarmente o usare -all per fermare tutte le versioni installate.
bash
servbayctl stop <servizio> [-all|version]1
- Esempio: Arresta il servizio PHP 7.4bash
servbayctl stop php 7.41 - Esempio: Arresta tutte le versioni di MariaDB installatebash
servbayctl stop mariadb -all1 - Esempio: Arresta il servizio Redisbash
servbayctl stop redis1
reload - Ricaricare la configurazione di un servizio
Ricarica la configurazione del servizio specificato, utile quando si modificano i file di configurazione senza dover riavviare completamente il servizio. Non tutti i servizi supportano il reload a caldo.
bash
servbayctl reload <servizio> [-all|version]1
- Esempio: Ricarica la configurazione del server web Caddybash
servbayctl reload caddy1 - Esempio: Ricarica la configurazione di tutte le versioni PHP installate (se supportato)bash
servbayctl reload php -all1
restart - Riavviare un servizio
Riavvia il servizio selezionato, equivalente ad eseguire prima lo stop e poi lo start.
bash
servbayctl restart <servizio> [-all|version]1
- Esempio: Riavvia il servizio database PostgreSQLbash
servbayctl restart pgsql1 - Esempio: Riavvia tutte le versioni di Redis installate (se sono presenti più versioni)bash
servbayctl restart redis -all1
kill - Terminare forzatamente un servizio
Termina forzatamente il processo del servizio prescelto. Si tratta di un'operazione avanzata e deve essere usata con cautela, poiché può comportare la perdita o la corruzione dei dati (soprattutto per i database). Va utilizzata preferibilmente solo quando il servizio non si arresta normalmente.
bash
servbayctl kill <servizio> [-all|version]1
- Esempio: Termina forzatamente il processo PHP 7.4bash
servbayctl kill php 7.41 - Esempio: Termina forzatamente tutti i processi Memcachedbash
servbayctl kill memcached -all1
status - Verificare lo stato di un servizio
Mostra lo stato attuale del servizio (se è attivo o meno).
bash
servbayctl status <servizio> [-all|version]1
- Esempio: Controlla lo stato del servizio Caddybash
servbayctl status caddy1 - Esempio: Controlla lo stato di tutte le versioni MySQL installatebash
servbayctl status mysql -all1
stop-all - Arrestare tutti i servizi ServBay
Ferma in blocco tutti i servizi in background attualmente gestiti da ServBay. Questo comando globale non accetta né il nome del servizio né la versione.
bash
servbayctl stop-all1
- Esempio: Arresta tutti i servizi in background di ServBaybash
servbayctl stop-all1
Elenco dei Servizi Supportati
In base al messaggio "Usage" di servbayctl, lo strumento può gestire direttamente i seguenti servizi di backend:
php: Gestione delle varie versioni dei processi PHP-FPM.mariadb: Gestione del servizio MariaDB.mysql: Gestione del servizio MySQL.postgresql: Gestione del servizio PostgreSQL.redis: Gestione del servizio Redis (cache/database).memcached: Gestione del servizio Memcached.caddy: Gestione del server web Caddy.nginx: Gestione del server web Nginx.apache: Gestione del server Apache HTTP.dnsmasq: Gestione del servizio DNS integrato di ServBay.mongodb: Gestione del servizio database MongoDB.rabbitmq: Gestione della coda messaggi RabbitMQ.cloudflared: Gestione del servizio Cloudflare Tunnel (se installato e configurato).frpc: Gestione del client Fatedier/frp (se installato e configurato).mailpit: Gestione del servizio di cattura email Mailpit.web: Gestione dei servizi web (il riferimento può variare in base all’utilizzo, come un web server attivo o le API web di ServBay).ollama: Gestione del servizio locale di modelli linguistici Ollama.
Nota che servbayctl ora può gestire direttamente molti dei servizi backend core, compresi Nginx e Apache. Anche se ServBay supporta l’installazione e l’uso di molti altri pacchetti software (Java, Python, Go, .NET, Ruby, Rust, ecc.), questi non vengono di solito eseguiti come servizi in background gestiti da servbayctl, ma devono essere lanciati da terminale o attraverso i rispettivi strumenti. servbayctl si concentra principalmente sulla gestione dei servizi core che operano come demoni di sistema.
Esempi di Utilizzo Comune
Ecco alcune situazioni d’uso tipiche di servbayctl:
Cambio rapido versione PHP per test:
bashservbayctl stop php -all servbayctl start php 8.21
2Riavviare il database dopo modifiche di configurazione:
bash# Supponiamo sia stato modificato il file my.cnf o my.ini servbayctl restart mysql1
2Assicurarsi che tutti i servizi siano fermati, ad esempio prima di spegnere il sistema o fare un aggiornamento di ServBay:
bashservbayctl stop-all1Verificare se un server web è attivo:
bashservbayctl status caddy1Automatizzare l'avvio dell’ambiente di sviluppo via script:
bash#!/bin/bash echo "Arresto di tutti i servizi ServBay..." servbayctl stop-all echo "Avvio dei servizi richiesti..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Servizi ServBay avviati."1
2
3
4
5
6
7
8
9
10
11
12
Note e Best Practice
- Aggiungi a PATH: Si consiglia vivamente di aggiungere la directory in cui risiede
servbayctlal PATH di sistema per semplificare l’inserimento dei comandi. - Usa
killcon cautela: Il comandokilltermina forzatamente i processi, rischiando la perdita di dati non salvati o stato anomalo dei servizi. Usalo solo quandostoporestartrisultano inefficaci. stop-allè un comando globale: Esegue l’arresto di tutti i servizi controllati da ServBay in background; assicurati che sia davvero ciò che intendi fare.- Parametro versione: Quando utilizzi il parametro version, verifica di specificare una versione effettivamente installata e supportata in ServBay. Puoi consultare la GUI di ServBay per l'elenco delle versioni installate.
- Gestione degli errori: Se l’esecuzione di un comando
servbayctlfallisce, verrà mostrato un messaggio di errore nel terminale. Analizza questi errori o consulta i file di log situati nella cartellalogsdella directory di installazione ServBay per ulteriori dettagli. - Combinare GUI e CLI:
servbayctlè uno strumento complementare alla GUI. Per modifiche complesse o una visione d’insieme, la GUI può essere preferibile.
Domande Frequenti (FAQ)
D: Compare il messaggio command not found quando eseguo servbayctl. Che cosa devo fare?
R: Probabilmente la directory /Applications/ServBay/script non è stata aggiunta al PATH di sistema. Segui le istruzioni nella sezione "Prerequisiti" di questa guida per aggiungerla.
D: Ho avviato un servizio con servbayctl start <servizio>, ma risulta non attivo. Come posso risolvere?
R:
- Verifica nuovamente lo stato del servizio tramite
servbayctl status <servizio>. - Controlla la cartella
logsnell’installazione ServBay e cerca i log d’errore specifici del servizio interessato; di solito troverai lì la causa del problema. - Prova ad avviare lo stesso servizio tramite la GUI di ServBay: potresti ottenere messaggi di errore più dettagliati.
- Verifica la correttezza del file di configurazione del servizio.
D: Il parametro -all funziona con tutti i servizi?
R: Il parametro -all si applica principalmente ai servizi che supportano l’installazione di più versioni, come PHP. Per la maggior parte dei database (MySQL, PostgreSQL) e server web (Caddy), di solito viene eseguita una sola istanza; qui l’uso di -all è equivalente a non specificare la versione e puoi usare direttamente il nome del servizio. Per Redis o Memcached, che possono avere più istanze su porte diverse, -all potrebbe gestire tutte queste istanze (il comportamento dipende dall’implementazione interna di ServBay).
Conclusione
servbayctl è l’interfaccia a riga di comando estremamente potente messa a disposizione da ServBay per gli sviluppatori. Consente un controllo flessibile ed efficiente dei servizi d’ambiente di sviluppo locale. Apprendendo l’uso dei comandi start, stop, reload, restart, kill, status, stop-all, e sfruttando i parametri version e -all, potrai gestire facilmente dal terminale tutti i servizi supportati da ServBay — come PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy e altri — integrando questi comandi in workflow automatizzati, per ottimizzare la tua esperienza di sviluppo.
