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/scriptvào biến môi trường PATH của hệ thống để có thể chạy lệnhservbayctltừ 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,~/.zshrchoặc~/.profilevà 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:
bash
servbayctl <command> <service> [parameters]1
<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.4hoặ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]1
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.
bash
servbayctl start <service> [-all|version]1
- Ví dụ: Khởi động PHP 8.1bash
servbayctl start php 8.11 - Ví dụ: Khởi động tất cả phiên bản PHP đã càibash
servbayctl start php -all1 - Ví dụ: Khởi động dịch vụ MySQL với cấu hình mặc địnhbash
servbayctl start mysql1 
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.
bash
servbayctl stop <service> [-all|version]1
- Ví dụ: Dừng PHP 7.4bash
servbayctl stop php 7.41 - Ví dụ: Dừng tất cả phiên bản MariaDB đã càibash
servbayctl stop mariadb -all1 - Ví dụ: Dừng Redisbash
servbayctl stop redis1 
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.
bash
servbayctl reload <service> [-all|version]1
- Ví dụ: Tải lại cấu hình máy chủ web Caddybash
servbayctl reload caddy1 - 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 -all1 
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).
bash
servbayctl restart <service> [-all|version]1
- Ví dụ: Khởi động lại cơ sở dữ liệu PostgreSQLbash
servbayctl restart pgsql1 - 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 -all1 
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.
bash
servbayctl kill <service> [-all|version]1
- Ví dụ: Buộc dừng PHP 7.4bash
servbayctl kill php 7.41 - Ví dụ: Buộc dừng tất cả tiến trình Memcachedbash
servbayctl kill memcached -all1 
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ụ.
bash
servbayctl status <service> [-all|version]1
- Ví dụ: Kiểm tra trạng thái Caddybash
servbayctl status caddy1 - Ví dụ: Kiểm tra trạng thái tất cả phiên bản MySQL đã càibash
servbayctl status mysql -all1 
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).
bash
servbayctl stop-all1
- Ví dụ: Dừng tất cả dịch vụ nền của ServBaybash
servbayctl stop-all1 
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.21
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 mysql1
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-all1Kiểm tra máy chủ web đang chạy không:
bashservbayctl status caddy1Tự độ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 
servbayctlvào PATH để tiện sử dụng hơn. - Cẩn trọng với 
kill: Lệnhkillbuộ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ằngstophoặcrestart. stop-alllà 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 
servbayctlthất bại, hãy xem thông báo lỗi hoặc mở thư mụclogstrong ServBay để tra cứu kỹ hơn. - Kết hợp GUI & CLI: 
servbayctlbổ 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 
logscủ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.
