Командный инструмент 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.11 - Пример: запуск всех установленных версий PHPbash
servbayctl start php -all1 - Пример: запуск MySQL по умолчаниюbash
servbayctl start mysql1
stop — остановка сервиса
Останавливает указанный сервис. Можно указать конкретную версию или параметр -all для остановки всех версий.
bash
servbayctl stop <service> [-all|version]1
- Пример: остановка PHP 7.4bash
servbayctl stop php 7.41 - Пример: остановка всех версий MariaDBbash
servbayctl stop mariadb -all1 - Пример: остановка Redisbash
servbayctl stop redis1
reload — перезагрузка конфигурации
Перечитывает конфигурацию указанного сервиса — актуально после редактирования конфигов, чтобы применить изменения без полной перезагрузки. Не все сервисы поддерживают hot-reload.
bash
servbayctl reload <service> [-all|version]1
- Пример: перезагрузка конфигурации Caddybash
servbayctl reload caddy1 - Пример: перезагрузка всех версий PHP (если поддерживается)bash
servbayctl reload php -all1
restart — перезапуск сервиса
Полный перезапуск (остановить и снова запустить) указанного сервиса.
bash
servbayctl restart <service> [-all|version]1
- Пример: перезапуск PostgreSQLbash
servbayctl restart pgsql1 - Пример: перезапуск всех версий Redis (если их несколько)bash
servbayctl restart redis -all1
kill — принудительное завершение сервиса
Форсированное завершение процесса сервиса. Используйте с осторожностью: возможна потеря данных либо повреждение сервисов (особенно баз данных). Обычно применяется при невозможности остановить сервис стандартным способом.
bash
servbayctl kill <service> [-all|version]1
- Пример: kill PHP 7.4bash
servbayctl kill php 7.41 - Пример: kill всех инстансов Memcachedbash
servbayctl kill memcached -all1
status — проверка состояния сервиса
Показать, запущен ли указанный сервис.
bash
servbayctl status <service> [-all|version]1
- Пример: узнать статус Caddybash
servbayctl status caddy1 - Пример: статус всех версий MySQLbash
servbayctl status mysql -all1
stop-all — остановка всех сервисов ServBay
Мгновенно останавливает все фоновые сервисы, управляемые ServBay. Эта команда не требует указания имён сервисов или версий.
bash
servbayctl stop-all1
- Пример: остановить все сервисыbash
servbayctl stop-all1
Перечень поддерживаемых сервисов
Согласно справке по 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.21
2Перезапуск БД для применения новых настроек:
bash# Например, после редактирования my.cnf или my.ini servbayctl restart mysql1
2Перед завершением работы или обновлением ServBay — остановить все сервисы:
bashservbayctl stop-all1Проверка активности веб-сервера:
bashservbayctl status caddy1Автоматизация запуска окружения в скрипте:
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 и др. — прямо из терминала. Это отлично дополняет автоматизированные рабочие процессы и позволяет максимально оптимизировать ваш опыт разработки.
