Herramienta de línea de comandos servbayctl
servbayctl
es una potente herramienta CLI proporcionada por ServBay, diseñada para que los desarrolladores gestionen directamente los servicios de fondo de ServBay desde la terminal. Con servbayctl
, puedes iniciar, detener, recargar, reiniciar, forzar detención ("kill"), ver el estado de los servicios y detener todos los servicios, entre otras operaciones. Esto resulta especialmente útil para automatización en scripts, cambios rápidos de estado de los servicios o para quienes prefieren la línea de comandos.
En este artículo se explican detalladamente el uso de servbayctl
, los comandos que soporta, los parámetros disponibles y los servicios compatibles.
Resumen
ServBay no solo ofrece una interfaz gráfica intuitiva (GUI) para gestionar tu entorno local de desarrollo web, sino que también incluye la utilidad cli servbayctl
. Esta se encuentra en la carpeta script
dentro del directorio de instalación de ServBay, y permite controlar fácilmente, mediante comandos simples, el estado de los distintos paquetes instalados por ServBay que se ejecutan como servicios de fondo.
Ventajas de usar servbayctl
:
- Automatización: Integra fácilmente la gestión de servicios en tus scripts de flujo de trabajo de desarrollo.
- Eficiencia: Inicia o detén servicios rápidamente sin necesidad de acceder a la GUI.
- Flexibilidad: Útil en conexiones remotas por SSH o entornos sin interfaz gráfica.
- Control preciso: Permite especificar servicios y versiones concretas para operar.
Requisitos previos
Antes de usar servbayctl
, asegúrate de:
Haber instalado ServBay correctamente.
Tener acceso a la terminal.
(Opcional y recomendado) Para facilitar el uso, añade la ruta
/Applications/ServBay/script
a la variable de entorno PATH de tu sistema. Así podrás ejecutar el comandoservbayctl
desde cualquier ubicación, sin necesidad de introducir la ruta completa.Para usuarios de Bash o Zsh, edita tu archivo
~/.bash_profile
,~/.bashrc
,~/.zshrc
o~/.profile
y añade la siguiente línea:bashexport PATH="/Applications/ServBay/script:$PATH"
1Después de guardar el archivo, ejecuta
source ~/.bash_profile
(o el archivo que hayas editado) para aplicar los cambios, o reinicia la terminal.
Sintaxis de uso
La sintaxis básica del comando servbayctl
es:
bash
servbayctl <comando> <servicio> [parámetros]
1
<comando>
: La operación que deseas realizar (por ejemplo,start
,stop
,restart
).<servicio>
: El nombre del servicio a operar (por ejemplo,php
,mysql
,caddy
).[parámetros]
: Parámetros opcionales, para especificar la versión del servicio o el alcance (como7.4
o-all
).
De acuerdo con la información de uso de ServBay para servbayctl
, la estructura y comandos soportados son:
Uso: /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: El comando stop-all
no acepta nombres de servicios ni parámetros; detendrá todos los servicios gestionados por ServBay.
Descripción detallada de los comandos soportados
A continuación se explica cada comando soportado por servbayctl
, junto con ejemplos:
start
- Iniciar servicio
Inicia el servicio especificado. Puedes iniciar una versión específica o usar el parámetro -all
para arrancar todas las versiones instaladas del servicio.
bash
servbayctl start <servicio> [-all|versión]
1
- Ejemplo: Iniciar servicio PHP 8.1bash
servbayctl start php 8.1
1 - Ejemplo: Iniciar todas las versiones de PHP instaladasbash
servbayctl start php -all
1 - Ejemplo: Iniciar el servicio MySQL con configuración predeterminadabash
servbayctl start mysql
1
stop
- Detener servicio
Detiene el servicio especificado. Puedes indicar una versión concreta o usar -all
para detener todas las versiones instaladas del servicio.
bash
servbayctl stop <servicio> [-all|versión]
1
- Ejemplo: Detener PHP 7.4bash
servbayctl stop php 7.4
1 - Ejemplo: Detener todas las versiones de MariaDB instaladasbash
servbayctl stop mariadb -all
1 - Ejemplo: Detener servicio Redisbash
servbayctl stop redis
1
reload
- Recargar la configuración del servicio
Recarga la configuración del servicio especificado. Se utiliza habitualmente tras modificar archivos de configuración, permitiendo aplicar los cambios sin necesidad de reiniciar el servicio por completo. No todos los servicios soportan recarga en caliente.
bash
servbayctl reload <servicio> [-all|versión]
1
- Ejemplo: Recargar configuración de Caddy Web Serverbash
servbayctl reload caddy
1 - Ejemplo: Recargar configuración de todas las versiones de PHP instaladas (si es compatible)bash
servbayctl reload php -all
1
restart
- Reiniciar servicio
Reinicia el servicio especificado. Equivale a detenerlo y luego iniciarlo de nuevo.
bash
servbayctl restart <servicio> [-all|versión]
1
- Ejemplo: Reiniciar el servicio de base de datos PostgreSQLbash
servbayctl restart pgsql
1 - Ejemplo: Reiniciar todas las versiones de Redis instaladas (si hay varias)bash
servbayctl restart redis -all
1
kill
- Forzar detención ("kill") del proceso
Fuerza la terminación del proceso del servicio especificado. Es una herramienta más agresiva de detención y debe usarse con precaución, ya que podría causar pérdida o daño de datos (especialmente en bases de datos). Utilízala solo si el servicio no se detiene normalmente.
bash
servbayctl kill <servicio> [-all|versión]
1
- Ejemplo: Forzar kill del servicio PHP 7.4bash
servbayctl kill php 7.4
1 - Ejemplo: Forzar la detención de todos los procesos de Memcachedbash
servbayctl kill memcached -all
1
status
- Ver estado del servicio
Consulta el estado de ejecución actual del servicio (si está funcionando o detenido).
bash
servbayctl status <servicio> [-all|versión]
1
- Ejemplo: Consultar el estado de Caddybash
servbayctl status caddy
1 - Ejemplo: Ver estado de todas las versiones de MySQL instaladasbash
servbayctl status mysql -all
1
stop-all
- Detener todos los servicios de ServBay
Detiene todos los servicios de fondo gestionados actualmente por ServBay. Es un comando global y no acepta parámetros de servicio ni versiones.
bash
servbayctl stop-all
1
- Ejemplo: Detener todos los servicios de fondo de ServBaybash
servbayctl stop-all
1
Lista de servicios soportados
Según la información de uso de servbayctl
, la herramienta puede controlar directamente los siguientes servicios de fondo:
php
: Gestión de versiones de procesos PHP-FPM.mariadb
: Servicio de base de datos MariaDB.mysql
: Servicio de base de datos MySQL.postgresql
: Servicio de base de datos PostgreSQL.redis
: Servicio de base de datos/caché Redis.memcached
: Servicio de caché Memcached.caddy
: Servicio del servidor web Caddy.nginx
: Servicio del servidor web Nginx.apache
: Servicio del servidor HTTP Apache.dnsmasq
: Servicio DNS integrado en ServBay.mongodb
: Servicio de base de datos MongoDB.rabbitmq
: Servicio de colas de mensajes RabbitMQ.cloudflared
: Gestión del túnel de Cloudflare (si está instalado y configurado).frpc
: Cliente de Fatedier/frp (si está instalado y configurado).mailpit
: Servicio de captura de correo Mailpit.web
: Gestión de servicio web (el significado específico puede depender de tu entorno, por ejemplo, servidor web activo o interfaz web asociada a ServBay).ollama
: Servicio local de modelos de lenguaje grande Ollama.
Ten en cuenta que servbayctl
ahora puede gestionar directamente una amplia gama de servicios de fondo, incluyendo Nginx y Apache. Aunque ServBay también soporta la instalación y uso de muchos otros paquetes (como Java, Python, Go, .NET, Ruby, Rust, etc.), estos generalmente no se ejecutan como servicios gestionados directamente por servbayctl
, sino que se usan a través de la terminal o sus propios mecanismos. El enfoque principal de servbayctl
es gestionar los servicios básicos que funcionan como demonios/servicios en segundo plano dentro de la lista anterior.
Ejemplos de casos de uso habituales
Algunos escenarios prácticos en los que se utiliza servbayctl
:
Cambio rápido de versión de PHP para pruebas:
bashservbayctl stop php -all servbayctl start php 8.2
1
2Reiniciar un servicio de base de datos para aplicar cambios de configuración:
bash# Supón que has modificado my.cnf o my.ini servbayctl restart mysql
1
2Asegurarte de que todos los servicios están detenidos antes de apagar el sistema o actualizar ServBay:
bashservbayctl stop-all
1Comprobar si un servidor web está en funcionamiento:
bashservbayctl status caddy
1Automatizar el inicio del entorno de desarrollo con un script:
bash#!/bin/bash echo "Deteniendo todos los servicios de ServBay..." servbayctl stop-all echo "Iniciando los servicios necesarios..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Servicios de ServBay iniciados."
1
2
3
4
5
6
7
8
9
10
11
12
Consideraciones y buenas prácticas
- Agregar a PATH: Se recomienda encarecidamente añadir la carpeta donde se encuentra
servbayctl
al PATH del sistema para simplificar el uso. - Precaución con
kill
: El comandokill
fuerza la terminación del proceso, lo que puede causar pérdida de datos no guardados o estados inconsistentes del servicio. Úsalo solo si el servicio no responde astop
orestart
. stop-all
es una operación global: Detiene todos los servicios gestionados por ServBay; asegúrate de querer realizar esta acción antes de ejecutarla.- Parámetro de versión: Cuando utilices el parámetro
version
, asegúrate de que la versión está instalada y soportada por ServBay. Puedes verificar las versiones instaladas a través de la GUI de ServBay. - Manejo de errores: Si un comando
servbayctl
falla, puede mostrar mensajes de error en la terminal. Analiza dichos mensajes o consulta los archivos de log en la carpetalogs
del directorio de instalación de ServBay para información detallada. - Uso combinado GUI y CLI:
servbayctl
complementa la GUI. Para cambios complejos de configuración o vistas generales, la interfaz gráfica resulta más práctica.
Preguntas frecuentes (FAQ)
P: ¿Qué hacer si al ejecutar servbayctl
recibo el mensaje command not found
?
R: Usualmente, esto ocurre porque no has añadido la ruta /Applications/ServBay/script
a la variable PATH de tu sistema. Consulta la sección “Requisitos previos” de este documento para ver cómo hacerlo.
P: ¿Qué hago si ejecuto servbayctl start <servicio>
pero el servicio no se inicia correctamente?
R:
- Revisa el estado del servicio con
servbayctl status <servicio>
. - Consulta la carpeta
logs
en el directorio de instalación de ServBay y busca el archivo de log de errores del servicio correspondiente para ver detalles del fallo. - Intenta iniciar el servicio desde la GUI de ServBay; esa interfaz puede proporcionar mensajes de error más amigables.
- Verifica que el archivo de configuración del servicio sea correcto.
P: ¿El parámetro -all
funciona con todos los servicios?
R: El parámetro -all
se usa principalmente con servicios que soportan varias versiones instaladas, como PHP. En la mayoría de bases de datos (MySQL, PostgreSQL, etc.) y servidores web (Caddy), normalmente solo hay una instancia activa; en estos casos, usar -all
es equivalente a no especificar versión, pero es más claro usar solo el nombre del servicio. Para servicios como Redis o Memcached, que pueden ejecutar varios instancias por diferentes puertos, -all
puede gestionar todas ellas (el comportamiento exacto depende de la implementación interna de ServBay).
Resumen
servbayctl
es una poderosa interfaz de línea de comandos que ServBay pone a disposición de los desarrolladores y que incrementa la flexibilidad y la eficacia en la gestión de servicios de entornos de desarrollo locales. Conociendo los comandos start
, stop
, reload
, restart
, kill
, status
, stop-all
, y usando los parámetros version
y -all
, puedes controlar desde la terminal los diversos servicios que soporta ServBay, como PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy, entre otros. Así, es más fácil integrar estos servicios en tus flujos automatizados y optimizar tu experiencia de desarrollo.