Công cụ dòng lệnh servbayctl
servbayctl
là một công cụ dòng lệnh mạnh mẽ do ServBay cung cấp, giúp các lập trình viên quản lý trực tiếp các dịch vụ nền của ServBay ngay trong Terminal. Thông qua servbayctl
, bạn có thể dễ dàng thực hiện các thao tác như khởi động, dừng, tải lại cấu hình, khởi động lại, buộc dừng, kiểm tra trạng thái và dừng tất cả dịch vụ - điều này đặc biệt hữu ích cho việc tự động hóa bằng script, chuyển đổi trạng thái dịch vụ nhanh hoặc với những ai yêu thích giao diện dòng lệnh.
Tài liệu này sẽ hướng dẫn chi tiết cách sử dụng servbayctl
, các lệnh hỗ trợ, tham số và dịch vụ tương ứng.
Tổng quan
Ngoài giao diện đồ họa dễ sử dụng (GUI) để quản lý môi trường phát triển web cục bộ, ServBay còn tích hợp công cụ dòng lệnh (CLI) servbayctl
. Công cụ này nằm trong thư mục script
bên trong thư mục cài đặt ServBay và cho phép bạn kiểm soát trạng thái các phần mềm được cài đặt bởi ServBay một cách tiện lợi thông qua thao tác câu lệnh.
Ưu điểm khi sử dụng servbayctl
:
- Tự động hóa: Dễ dàng tích hợp quản lý dịch vụ vào các script trong quy trình làm việc của bạn.
- Hiệu quả: Khởi động hoặc dừng dịch vụ trực tiếp mà không cần mở GUI.
- Linh hoạt: Là lựa chọn tối ưu khi truy cập từ xa qua SSH hoặc môi trường không có giao diện.
- Kiểm soát chính xác: Có thể chỉ định dịch vụ hoặc phiên bản cụ thể để thao tác.
Điều kiện tiên quyết
Trước khi sử dụng servbayctl
, hãy đảm bảo:
Bạn đã cài đặt ServBay thành công.
Có quyền truy cập Terminal.
(Tùy chọn, khuyến khích) Hãy thêm đường dẫn
/Applications/ServBay/script
vào biến môi trường PATH của hệ thống để có thể chạy lệnhservbayctl
từ bất kỳ đâu mà không cần nhập đủ đường dẫn.Đối với người dùng Bash hoặc Zsh, hãy chỉnh sửa file cấu hình tương ứng:
~/.bash_profile
,~/.bashrc
,~/.zshrc
hoặc~/.profile
và thêm dòng sau:bashexport PATH="/Applications/ServBay/script:$PATH"
1Sau khi lưu file, chạy lệnh
source ~/.bash_profile
(hoặc file bạn vừa chỉnh sửa) để áp dụng thay đổi, hoặc khởi động lại Terminal.
Cú pháp sử dụng
Cú pháp cơ bản của lệnh servbayctl
:
servbayctl <command> <service> [parameters]
<command>
: Hành động muốn thực hiện (ví dụstart
,stop
,restart
).<service>
: Tên dịch vụ muốn thao tác (ví dụphp
,mysql
,caddy
).[parameters]
: Tham số tùy chọn, dùng để chỉ định phiên bản hoặc phạm vi (ví dụ7.4
hoặc-all
).
Dựa theo hướng dẫn sử dụng của ServBay, cấu trúc và các lệnh hỗ trợ bởi servbayctl
như sau:
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]
Lưu ý: Lệnh stop-all
không nhận tên dịch vụ hoặc tham số, nó sẽ dừng tất cả các dịch vụ do ServBay quản lý.
Giải thích chi tiết các lệnh hỗ trợ
Dưới đây là giải thích cũng như ví dụ về từng lệnh mà servbayctl
hỗ trợ:
start
- Khởi động dịch vụ
Khởi động một dịch vụ được chỉ định. Bạn có thể chọn phiên bản cụ thể hoặc dùng tham số -all
để khởi động tất cả phiên bản đã cài.
servbayctl start <service> [-all|version]
- Ví dụ: Khởi động PHP 8.1bash
servbayctl start php 8.1
1 - Ví dụ: Khởi động tất cả phiên bản PHP đã càibash
servbayctl start php -all
1 - Ví dụ: Khởi động dịch vụ MySQL với cấu hình mặc địnhbash
servbayctl start mysql
1
stop
- Dừng dịch vụ
Dừng một dịch vụ được chỉ định. Có thể chọn phiên bản cụ thể hoặc dùng -all
để dừng tất cả phiên bản đã cài.
servbayctl stop <service> [-all|version]
- Ví dụ: Dừng PHP 7.4bash
servbayctl stop php 7.4
1 - Ví dụ: Dừng tất cả phiên bản MariaDB đã càibash
servbayctl stop mariadb -all
1 - Ví dụ: Dừng Redisbash
servbayctl stop redis
1
reload
- Tải lại cấu hình dịch vụ
Tải lại cấu hình cho dịch vụ được chỉ định (không phải dịch vụ nào cũng hỗ trợ tính năng này). Thường dùng sau khi sửa đổi file cấu hình mà không cần khởi động lại hoàn toàn.
servbayctl reload <service> [-all|version]
- Ví dụ: Tải lại cấu hình máy chủ web Caddybash
servbayctl reload caddy
1 - Ví dụ: Tải lại cấu hình cho tất cả phiên bản PHP (nếu hỗ trợ)bash
servbayctl reload php -all
1
restart
- Khởi động lại dịch vụ
Khởi động lại dịch vụ nhất định (thực hiện tuần tự dừng rồi khởi động).
servbayctl restart <service> [-all|version]
- Ví dụ: Khởi động lại cơ sở dữ liệu PostgreSQLbash
servbayctl restart pgsql
1 - Ví dụ: Khởi động lại tất cả phiên bản Redis (nếu cài nhiều phiên bản)bash
servbayctl restart redis -all
1
kill
- Buộc dừng dịch vụ
Buộc dừng tiến trình của dịch vụ. Đây là thao tác mạnh, nên cẩn thận vì có thể gây mất dữ liệu hoặc hỏng dịch vụ (đặc biệt với cơ sở dữ liệu). Chỉ sử dụng khi không thể dừng bình thường.
servbayctl kill <service> [-all|version]
- Ví dụ: Buộc dừng PHP 7.4bash
servbayctl kill php 7.4
1 - Ví dụ: Buộc dừng tất cả tiến trình Memcachedbash
servbayctl kill memcached -all
1
status
- Kiểm tra trạng thái dịch vụ
Xem trạng thái hiện tại (đang chạy hay không) của dịch vụ.
servbayctl status <service> [-all|version]
- Ví dụ: Kiểm tra trạng thái Caddybash
servbayctl status caddy
1 - Ví dụ: Kiểm tra trạng thái tất cả phiên bản MySQL đã càibash
servbayctl status mysql -all
1
stop-all
- Dừng tất cả dịch vụ ServBay
Dừng toàn bộ dịch vụ nền do ServBay quản lý (không nhận tên dịch vụ hay phiên bản).
servbayctl stop-all
- Ví dụ: Dừng tất cả dịch vụ nền của ServBaybash
servbayctl stop-all
1
Danh sách dịch vụ hỗ trợ
Theo thông tin từ hướng dẫn sử dụng, các dịch vụ sau có thể quản lý trực tiếp bằng servbayctl
:
php
: Quản lý các tiến trình PHP-FPM nhiều phiên bản.mariadb
: Quản lý cơ sở dữ liệu MariaDB.mysql
: Quản lý cơ sở dữ liệu MySQL.postgresql
: Quản lý cơ sở dữ liệu PostgreSQL.redis
: Quản lý dịch vụ cache/cơ sở dữ liệu Redis.memcached
: Quản lý dịch vụ cache Memcached.caddy
: Quản lý máy chủ web Caddy.nginx
: Quản lý máy chủ web Nginx.apache
: Quản lý máy chủ HTTP Apache.dnsmasq
: Quản lý dịch vụ DNS tích hợp của ServBay.mongodb
: Quản lý cơ sở dữ liệu MongoDB.rabbitmq
: Quản lý hệ thống hàng đợi RabbitMQ.cloudflared
: Quản lý dịch vụ Cloudflare Tunnel (nếu đã cài và cấu hình).frpc
: Quản lý client Fatedier/frp (nếu đã cài và cấu hình).mailpit
: Quản lý công cụ ghi nhận email Mailpit.web
: Quản lý dịch vụ Web (cụ thể tùy trường hợp thực tế, ví dụ máy chủ web hoạt động hoặc giao diện web ServBay).ollama
: Quản lý dịch vụ mô hình ngôn ngữ lớn cục bộ Ollama.
Lưu ý: Hiện tại, servbayctl
có thể quản lý trực tiếp các dịch vụ nền cốt lõi như Nginx, Apache... Một số phần mềm khác như Java, Python, Go, .NET, Ruby, Rust... thường không chạy dạng dịch vụ nền nên không thể kiểm soát qua servbayctl
, mà phải gọi trực tiếp hoặc dùng công cụ riêng. Công cụ này chủ yếu tập trung kiểm soát các dịch vụ nền quan trọng kể trên.
Ví dụ trường hợp sử dụng phổ biến
Một vài kịch bản thường gặp khi sử dụng servbayctl
:
Chuyển đổi nhanh phiên bản PHP để kiểm tra:
bashservbayctl stop php -all servbayctl start php 8.2
1
2Khởi động lại dịch vụ cơ sở dữ liệu cho cấu hình mới:
bash# Ví dụ bạn đã chỉnh sửa my.cnf hoặc my.ini servbayctl restart mysql
1
2Đảm bảo mọi dịch vụ đều dừng, ví dụ trước khi tắt máy hoặc cập nhật ServBay:
bashservbayctl stop-all
1Kiểm tra máy chủ web đang chạy không:
bashservbayctl status caddy
1Tự động hóa bật môi trường phát triển qua script:
bash#!/bin/bash echo "Đang dừng toàn bộ dịch vụ ServBay..." servbayctl stop-all echo "Bắt đầu các dịch vụ cần thiết..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Các dịch vụ ServBay đã được khởi động."
1
2
3
4
5
6
7
8
9
10
11
12
Lưu ý & Thực tiễn tốt nhất
- Thêm vào PATH: Nên thêm thư mục chứa
servbayctl
vào PATH để tiện sử dụng hơn. - Cẩn trọng với
kill
: Lệnhkill
buộc dừng tiến trình, có thể làm mất dữ liệu hoặc lỗi dịch vụ. Hạn chế dùng nếu có thể dừng bình thường bằngstop
hoặcrestart
. stop-all
là thao tác toàn cục: Lệnh này sẽ dừng tất cả dịch vụ do ServBay quản lý, hãy chắc chắn trước khi thực hiện.- Tham số phiên bản: Khi dùng tham số phiên bản, cần bảo đảm phiên bản đó đã cài trên ServBay (xem qua GUI).
- Xử lý lỗi: Nếu lệnh
servbayctl
thất bại, hãy xem thông báo lỗi hoặc mở thư mụclogs
trong ServBay để tra cứu kỹ hơn. - Kết hợp GUI & CLI:
servbayctl
bổ sung cho GUI. Đối với các thay đổi cấu hình phức tạp hoặc xem tổng quan, GUI sẽ dễ thao tác hơn.
Câu hỏi thường gặp (FAQ)
Q: Khi chạy lệnh servbayctl
mà báo command not found
phải làm sao?
A: Nguyên nhân thường do chưa thêm /Applications/ServBay/script
vào biến PATH. Làm theo hướng dẫn ở mục "Điều kiện tiên quyết" của tài liệu này để bổ sung đường dẫn đó cho PATH.
Q: Khi chạy servbayctl start <service>
mà dịch vụ không chạy được thì kiểm tra thế nào?
A:
- Thử kiểm tra trạng thái bằng
servbayctl status <service>
. - Xem các file log lỗi trong thư mục
logs
của ServBay để tìm nguyên nhân cụ thể. - Thử khởi động dịch vụ qua GUI, GUI có thể hiển thị lỗi dễ hiểu hơn.
- Kiểm tra lại cấu hình dịch vụ có đúng không.
Q: Tham số -all
có phải dùng được với mọi dịch vụ không?
A: -all
thường áp dụng với dịch vụ hỗ trợ nhiều phiên bản như PHP. Đối với các cơ sở dữ liệu (MySQL, PostgreSQL...) và máy chủ web (Caddy...) thường chỉ chạy một phiên bản, khi đó dùng -all
hoặc không cũng như nhau. Một số dịch vụ như Redis, Memcached có thể có nhiều instance theo cổng, khi đó -all
sẽ áp dụng cho tất cả; thực tế còn tùy vào cách ServBay triển khai.
Tổng kết
servbayctl
là giao diện dòng lệnh mạnh mẽ do ServBay cung cấp, cho phép các nhà phát triển quản lý linh hoạt và hiệu quả các dịch vụ nền của môi trường phát triển cục bộ. Thành thạo các lệnh như start
, stop
, reload
, restart
, kill
, status
, stop-all
cùng với tham số version
và -all
, bạn dễ dàng điều khiển qua Terminal các dịch vụ như PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy... Nhờ đó, việc tự động hóa quy trình làm việc và tối ưu trải nghiệm phát triển trở nên đơn giản và hiệu quả hơn bao giờ hết.