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/script
alla variabile d'ambiente PATH del sistema. In questo modo potrai eseguire il comandoservbayctl
da qualsiasi posizione senza dover inserire il percorso completo.Per utenti Bash o Zsh, modifica uno dei file
~/.bash_profile
,~/.bashrc
,~/.zshrc
o~/.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:
servbayctl <comando> <servizio> [parametri]
<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.4
o-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]
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.
servbayctl start <servizio> [-all|version]
- Esempio: Avvia il servizio PHP 8.1bash
servbayctl start php 8.1
1 - Esempio: Avvia tutte le versioni di PHP installatebash
servbayctl start php -all
1 - Esempio: Avvia il servizio MySQL con la configurazione predefinitabash
servbayctl start mysql
1
stop
- Arrestare un servizio
Arresta il servizio selezionato. Puoi specificare una versione particolarmente o usare -all
per fermare tutte le versioni installate.
servbayctl stop <servizio> [-all|version]
- Esempio: Arresta il servizio PHP 7.4bash
servbayctl stop php 7.4
1 - Esempio: Arresta tutte le versioni di MariaDB installatebash
servbayctl stop mariadb -all
1 - Esempio: Arresta il servizio Redisbash
servbayctl stop redis
1
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.
servbayctl reload <servizio> [-all|version]
- Esempio: Ricarica la configurazione del server web Caddybash
servbayctl reload caddy
1 - Esempio: Ricarica la configurazione di tutte le versioni PHP installate (se supportato)bash
servbayctl reload php -all
1
restart
- Riavviare un servizio
Riavvia il servizio selezionato, equivalente ad eseguire prima lo stop e poi lo start.
servbayctl restart <servizio> [-all|version]
- Esempio: Riavvia il servizio database PostgreSQLbash
servbayctl restart pgsql
1 - Esempio: Riavvia tutte le versioni di Redis installate (se sono presenti più versioni)bash
servbayctl restart redis -all
1
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.
servbayctl kill <servizio> [-all|version]
- Esempio: Termina forzatamente il processo PHP 7.4bash
servbayctl kill php 7.4
1 - Esempio: Termina forzatamente tutti i processi Memcachedbash
servbayctl kill memcached -all
1
status
- Verificare lo stato di un servizio
Mostra lo stato attuale del servizio (se è attivo o meno).
servbayctl status <servizio> [-all|version]
- Esempio: Controlla lo stato del servizio Caddybash
servbayctl status caddy
1 - Esempio: Controlla lo stato di tutte le versioni MySQL installatebash
servbayctl status mysql -all
1
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.
servbayctl stop-all
- Esempio: Arresta tutti i servizi in background di ServBaybash
servbayctl stop-all
1
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.2
1
2Riavviare il database dopo modifiche di configurazione:
bash# Supponiamo sia stato modificato il file my.cnf o my.ini servbayctl restart mysql
1
2Assicurarsi che tutti i servizi siano fermati, ad esempio prima di spegnere il sistema o fare un aggiornamento di ServBay:
bashservbayctl stop-all
1Verificare se un server web è attivo:
bashservbayctl status caddy
1Automatizzare 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
servbayctl
al PATH di sistema per semplificare l’inserimento dei comandi. - Usa
kill
con cautela: Il comandokill
termina forzatamente i processi, rischiando la perdita di dati non salvati o stato anomalo dei servizi. Usalo solo quandostop
orestart
risultano 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
servbayctl
fallisce, verrà mostrato un messaggio di errore nel terminale. Analizza questi errori o consulta i file di log situati nella cartellalogs
della 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
logs
nell’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.