Інструмент командного рядка 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.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 — Перезавантаження конфігурації сервісу
Перезавантажує конфігурацію заданого сервісу, дозволяючи застосувати зміни без повного перезапуску (актуально не для всіх сервісів).
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
- Приклад: Примусово зупинити PHP 7.4bash
servbayctl kill php 7.41 - Приклад: Примусово завершити всі процеси 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
- Приклад: Зупинити всі фонові сервіси ServBaybash
servbayctl stop-all1
Підтримувані сервіси
Відповідно до 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.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чи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 тощо. Це спрощує інтеграцію з автоматизованими робочими процесами та забезпечує ще більш зручний досвід розробки.
