Інструмент командного рядка servbayctl
servbayctl
— це потужний інструмент командного рядка від ServBay, створений для розробників, яким потрібно безпосередньо керувати фоновими сервісами ServBay через термінал. Завдяки servbayctl
ви можете зручно запускати, зупиняти, перезавантажувати, перезапускати сервіси, примусово завершувати процеси, переглядати статус або зупиняти всі сервіси. Це особливо корисно для автоматизації скриптів, швидкого перемикання статусу сервісів чи для тих, хто віддає перевагу роботі через командний рядок.
У цій статті детально описується, як користуватися servbayctl
, які команди, параметри та сервіси підтримуються цим інструментом.
Огляд
ServBay надає не лише зручний графічний інтерфейс (GUI) для керування вашим локальним середовищем розробки, а й інструмент командного рядка — servbayctl
. Він розташований у папці script
директорії установки ServBay, та дозволяє контролювати різні пакети 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
для роботи з усіма встановленими версіями.
Відповідно до документації ServBay щодо servbayctl
, підтримуються такі команди та структура:
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
— Перезавантаження конфігурації сервісу
Перезавантажує конфігурацію заданого сервісу, дозволяючи застосувати зміни без повного перезапуску (актуально не для всіх сервісів).
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
- Приклад: Примусово зупинити PHP 7.4bash
servbayctl kill php 7.4
1 - Приклад: Примусово завершити всі процеси 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
- Приклад: Зупинити всі фонові сервіси ServBaybash
servbayctl stop-all
1
Підтримувані сервіси
Відповідно до Usage, servbayctl
може напряму контролювати такі фонові сервіси:
php
: Керування різними версіями PHP-FPM.mariadb
: Керування базою даних MariaDB.mysql
: Керування базою даних MySQL.postgresql
: Керування базою даних PostgreSQL.redis
: Керування кешем/базою даних Redis.memcached
: Керування кеш-сервісом Memcached.caddy
: Керування вебсервером Caddy.nginx
: Керування сервісом Nginx.apache
: Керування Apache HTTP сервером.dnsmasq
: Керування вбудованим DNS сервісом ServBay.mongodb
: Керування MongoDB.rabbitmq
: Керування RabbitMQ (черга повідомлень).cloudflared
: Керування тунелями Cloudflare (за умови встановлення та налаштування).frpc
: Керування клієнтом Fatedier/frp (за умови встановлення та налаштування).mailpit
: Керування Mailpit (інструмент перехоплення пошти для розробки).web
: Керування веб-сервісами (детальну специфікацію цієї служби уточнюйте залежно від вашого середовища).ollama
: Керування локальним сервісом Ollama для великих мовних моделей.
Зверніть увагу: тепер servbayctl
може керувати й Nginx, і Apache. Хоча ServBay підтримує установку багатьох інших пакетів (наприклад, Java, Python, Go, .NET, Ruby, Rust тощо), вони зазвичай не працюють у ServBay як фонові сервіси, якими можна керувати через servbayctl
: ними слід керувати або напряму з терміналу, або відповідними інструментами. 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
чиrestart
) не допомагає. stop-all
— глобальна дія: Викликає припинення всіх керованих ServBay сервісів.- Правильне зазначення версій: Для роботи з версіями переконайтеся, що потрібна версія встановлена в ServBay. Актуальні версії можна переглянути через графічний інтерфейс.
- Обробка помилок: У разі невдачі команди у терміналі з’явиться повідомлення про помилку. Усуньте її згідно з описом або перегляньте логи у папці
logs
(розташована у директорії установки ServBay). - GUI й CLI — разом:
servbayctl
доповнює GUI. Налаштування чи швидкий огляд вигідніше робити через графічний інтерфейс.
Часті питання (FAQ)
Q: Після виконання команди servbayctl
з’являється повідомлення command not found
. Що робити?
A: Швидше за все, каталог /Applications/ServBay/script
не додано у PATH. Перегляньте розділ "Передумови" цієї інструкції та додайте його у змінну PATH.
Q: Я виконую servbayctl start <service>
, але сервіс не запускається, як знайти причину?
A:
- Повторно перевірте статус за допомогою
servbayctl status <service>
. - Відкрийте каталог
logs
у директорії установки ServBay, і перегляньте файли логів конкретного сервісу — там мають бути причини помилки. - Спробуйте запустити сервіс через GUI для отримання більш детальної інформації про помилку.
- Перевірте конфігураційні файли сервісу.
Q: Чи команда -all
підходить для будь-якого сервісу?
A: Параметр -all
актуальний для сервісів з підтримкою кількох версій (наприклад, PHP). Для більшості баз даних (MySQL, PostgreSQL тощо) та вебсерверів (Caddy), як правило, одночасно працює лише одна версія, тож використання -all
має такий самий ефект, як і зазначення лише назви сервісу. Для Redis і Memcached, що можуть працювати на різних портах, -all
керуватиме всіма такими екземплярами (залежить від реалізації ServBay).
Висновок
servbayctl
— це потужний інтерфейс командного рядка від ServBay, що значно підвищує гнучкість і ефективність керування локальними службами розробки. Завдяки підтримці команд start
, stop
, reload
, restart
, kill
, status
, stop-all
і можливості вказувати конкретну версію чи -all
, ви легко контролюватимете всі сервіси, що підтримуються ServBay — PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy тощо. Це спрощує інтеграцію з автоматизованими робочими процесами та забезпечує ще більш зручний досвід розробки.