Командный инструмент servbayctl
servbayctl
— это мощный CLI-инструмент (командная строка), предоставляемый ServBay, предназначенный для удобного управления фоновыми сервисами среды разработки прямо из терминала. С его помощью вы легко выполните запуск, остановку, перезагрузку, перезапуск, принудительное завершение процесса, просмотр состояния, а также остановку всех сервисов одновременно. Это особенно удобно для сценариев автоматизации, быстрой смены состояния сервисов или для разработчиков, предпочитающих работу через терминал.
В этой статье подробно описана работа с servbayctl
, поддерживаемые команды, параметры и перечень сервисов.
Обзор
ServBay предлагает не только удобный графический интерфейс (GUI) для управления вашей локальной средой веб-разработки, но и инструмент командной строки (CLI) — servbayctl
. Он расположен в папке script
директории установки ServBay и позволяет управлять состоянием установленных сервисов с помощью простых команд прямо из терминала.
Преимущества использования servbayctl
:
- Автоматизация: легко интегрируйте управление сервисами в ваши скрипты рабочего процесса.
- Эффективность: быстрый запуск или остановка сервисов без необходимости открывать GUI.
- Гибкость: подходит для удалённых SSH-сессий или безголовых (headless) сред.
- Точный контроль: можно указывать конкретные сервисы или их версии.
Предварительные требования
Перед началом работы с servbayctl
убедитесь, что:
ServBay успешно установлен.
У вас есть доступ к терминалу.
(Опционально, рекомендуется) — ради удобства добавьте директорию
/Applications/ServBay/script
в переменную окружения PATH. Тогда командуservbayctl
можно будет вызывать из любого каталога без полного пути.Для пользователей Bash или Zsh отредактируйте файл
~/.bash_profile
,~/.bashrc
,~/.zshrc
или~/.profile
, добавив такую строку:bashexport PATH="/Applications/ServBay/script:$PATH"
1После сохранения обновите сессию, выполнив
source ~/.bash_profile
(или файл, который вы изменяли), либо перезапустите терминал.
Синтаксис использования
Базовая структура команды servbayctl
:
bash
servbayctl <command> <service> [parameters]
1
<command>
: желаемое действие (start
,stop
,restart
и т.д.).<service>
: имя сервиса для управления (php
,mysql
,caddy
и др.).[parameters]
: необязательные параметры, например, версия сервиса или-all
.
Согласно официальной справке:
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
Внимание: команда stop-all
не требует имени сервиса или параметров и останавливает все управляемые сервисы ServBay.
Подробное описание команд
Ниже перечислены команды servbayctl
с пояснениями и примерами:
start
— запуск сервиса
Запускает указанный сервис. Можно указать конкретную версию или использовать параметр -all
для запуска всех установленных версий.
bash
servbayctl start <service> [-all|version]
1
- Пример: запуск PHP 8.1bash
servbayctl start php 8.1
1 - Пример: запуск всех установленных версий PHPbash
servbayctl start php -all
1 - Пример: запуск MySQL по умолчаниюbash
servbayctl start mysql
1
stop
— остановка сервиса
Останавливает указанный сервис. Можно указать конкретную версию или параметр -all
для остановки всех версий.
bash
servbayctl stop <service> [-all|version]
1
- Пример: остановка PHP 7.4bash
servbayctl stop php 7.4
1 - Пример: остановка всех версий MariaDBbash
servbayctl stop mariadb -all
1 - Пример: остановка Redisbash
servbayctl stop redis
1
reload
— перезагрузка конфигурации
Перечитывает конфигурацию указанного сервиса — актуально после редактирования конфигов, чтобы применить изменения без полной перезагрузки. Не все сервисы поддерживают hot-reload.
bash
servbayctl reload <service> [-all|version]
1
- Пример: перезагрузка конфигурации Caddybash
servbayctl reload caddy
1 - Пример: перезагрузка всех версий PHP (если поддерживается)bash
servbayctl reload php -all
1
restart
— перезапуск сервиса
Полный перезапуск (остановить и снова запустить) указанного сервиса.
bash
servbayctl restart <service> [-all|version]
1
- Пример: перезапуск PostgreSQLbash
servbayctl restart pgsql
1 - Пример: перезапуск всех версий Redis (если их несколько)bash
servbayctl restart redis -all
1
kill
— принудительное завершение сервиса
Форсированное завершение процесса сервиса. Используйте с осторожностью: возможна потеря данных либо повреждение сервисов (особенно баз данных). Обычно применяется при невозможности остановить сервис стандартным способом.
bash
servbayctl kill <service> [-all|version]
1
- Пример: kill PHP 7.4bash
servbayctl kill php 7.4
1 - Пример: kill всех инстансов Memcachedbash
servbayctl kill memcached -all
1
status
— проверка состояния сервиса
Показать, запущен ли указанный сервис.
bash
servbayctl status <service> [-all|version]
1
- Пример: узнать статус Caddybash
servbayctl status caddy
1 - Пример: статус всех версий MySQLbash
servbayctl status mysql -all
1
stop-all
— остановка всех сервисов ServBay
Мгновенно останавливает все фоновые сервисы, управляемые ServBay. Эта команда не требует указания имён сервисов или версий.
bash
servbayctl stop-all
1
- Пример: остановить все сервисыbash
servbayctl stop-all
1
Перечень поддерживаемых сервисов
Согласно справке по servbayctl
, инструмент управляет следующими типами фоновых сервисов:
php
: управление всеми версиями PHP-FPM.mariadb
: MariaDB.mysql
: MySQL.postgresql
: PostgreSQL.redis
: Redis (кэш/БД).memcached
: Memcached.caddy
: Caddy Web Server.nginx
: Nginx Web Server.apache
: Apache HTTP Server.dnsmasq
: встроенный DNS от ServBay.mongodb
: MongoDB.rabbitmq
: RabbitMQ message queue.cloudflared
: Cloudflare Tunnel (если установлен).frpc
: клиент Fatedier/frp (если настроен).mailpit
: Mailpit (тул для перехвата email).web
: "web"-сервис (может относиться к активному веб-серверу либо связанным интерфейсам ServBay).ollama
: Ollama — сервис локальных LLM моделей.
Учтите: теперь через servbayctl
можно управлять не только PHP, но и Nginx, Apache и рядом других ключевых сервисов. Хотя ServBay поддерживает установку прочих пакетов (Java, Python, Go, .NET, Ruby, Rust и др.), они, как правило, не функционируют как фоновые демоны — их управление осуществляется напрямую либо своими инструментами. CLI-интерфейс servbayctl
сфокусирован на сервисах, запущенных как основные фоновые процессы.
Примеры типовых сценариев
Некоторые частые сценарии использования servbayctl
:
Быстрая смена версии PHP для тестирования:
bashservbayctl stop php -all servbayctl start php 8.2
1
2Перезапуск БД для применения новых настроек:
bash# Например, после редактирования my.cnf или my.ini servbayctl restart mysql
1
2Перед завершением работы или обновлением ServBay — остановить все сервисы:
bashservbayctl stop-all
1Проверка активности веб-сервера:
bashservbayctl status caddy
1Автоматизация запуска окружения в скрипте:
bash#!/bin/bash echo "Остановка всех сервисов ServBay..." servbayctl stop-all echo "Запуск необходимых сервисов..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Сервисы ServBay запущены."
1
2
3
4
5
6
7
8
9
10
11
12
Замечания и лучшие практики
- Добавьте в PATH: крайне желательно включить директорию с
servbayctl
в системный PATH. - Осторожно с
kill
: команда kill принудительно завершает процессы — используйте её только когда иначе не получается остановить сервис, иначе возможна потеря данных. stop-all
— глобальная операция: остановит всё управляемое ServBay — убедитесь, что это действительно нужно.- Параметр версии: при указании версии проверьте, что она действительно установлена — это можно сделать через GUI.
- Обработка ошибок: если команда завершилась неудачно — изучите вывод ошибки либо логи (обычно они находятся в папке
logs
директории ServBay). - Сочетание GUI и CLI: CLI — отличный помощник для автоматизации, а для сложной настройки или полного обзора состояния может быть удобнее графический интерфейс.
Часто задаваемые вопросы (FAQ)
Вопрос: При запуске servbayctl
получаю ошибку command not found
. Что делать?
Ответ: Обычно это значит, что директория /Applications/ServBay/script
не была добавлена в системный PATH. Следуйте рекомендациям из раздела "Предварительные требования" этого документа для её добавления.
Вопрос: Я запускаю сервис через servbayctl start <service>
, но он не стартует. Как искать проблему?
Ответ:
- Снова проверьте статус с помощью
servbayctl status <service>
. - Изучите логи в директории
logs
папки установки ServBay — там обычно можно найти причину сбоя запуска. - Попробуйте запустить сервис через GUI — там могут отображаться более понятные подсказки об ошибках.
- Убедитесь, что настройки сервисов (конфиги) корректны.
Вопрос: Можно ли использовать параметр -all
для всех сервисов?
Ответ: -all
применяется главным образом к сервисам с установленными несколькими версиями (например, PHP). Для большинства баз данных (MySQL, PostgreSQL) и веб-серверов (Caddy) этот параметр, как правило, эквивалентен пустому (по умолчанию запускается/останавливается один экземпляр). Для Redis и Memcached наличие -all
позволяет управлятъ всеми инстансами, если их несколько (точное поведение зависит от внутренней реализации ServBay).
Итоги
servbayctl
— мощная командная утилита ServBay, значительно повышающая гибкость и эффективность управления локальной средой разработки. Освоив команды start
, stop
, reload
, restart
, kill
, status
, stop-all
и используя параметры version
или -all
, вы сможете удобно и быстро управлять состоянием всех ключевых сервисов — PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy и др. — прямо из терминала. Это отлично дополняет автоматизированные рабочие процессы и позволяет максимально оптимизировать ваш опыт разработки.