เครื่องมือบรรทัดคำสั่ง servbayctl
servbayctl
คือเครื่องมือบรรทัดคำสั่งอันทรงพลังจาก ServBay ที่ถูกออกแบบมาเพื่อให้นักพัฒนาสามารถจัดการบริการเบื้องหลังของ ServBay ได้โดยตรงผ่านเทอร์มินัล ด้วย servbayctl
คุณสามารถเริ่มต้น หยุด รีโหลด รีสตาร์ท ฆ่า ดูสถานะ หรือหยุดบริการทั้งหมดได้สะดวก ซึ่งเหมาะสำหรับผู้ที่ชอบอัตโนมัติผ่านสคริปต์ สลับสถานะบริการอย่างรวดเร็ว หรือชื่นชอบการใช้งานผ่านบรรทัดคำสั่ง
บทความนี้จะอธิบายการใช้งาน servbayctl
, คำสั่งที่รองรับ, พารามิเตอร์ และบริการที่รองรับอย่างละเอียด
ภาพรวม
ServBay ไม่เพียงให้ GUI (อินเตอร์เฟซผู้ใช้แบบกราฟิก) ที่ใช้งานง่ายในการจัดการเว็บเซิร์ฟเวอร์ในเครื่องคุณ แต่ยังมาพร้อมเครื่องมือ CLI อย่าง servbayctl
ด้วย โดยสามารถพบ servbayctl
ได้ในโฟลเดอร์ script
ภายใต้ไดเรกทอรีติดตั้งของ ServBay ให้คุณควบคุมซอฟต์แวร์แพ็คเกจต่าง ๆ ที่ติดตั้งกับ ServBay ในรูปแบบบริการเบื้องหลังได้อย่างง่ายดาย
จุดเด่นในการใช้ servbayctl
ได้แก่
- ระบบอัตโนมัติ: ผสานการจัดการบริการเข้ากับสคริปต์การพัฒนาได้โดยง่าย
- ประสิทธิภาพ: สั่งเริ่มหรือหยุดบริการเฉพาะได้โดยไม่ต้องเปิด GUI
- ความยืดหยุ่น: เหมาะกับการเชื่อมต่อ SSH ระยะไกลหรือสภาพแวดล้อมแบบไม่มีหน้าจอ
- ควบคุมได้แม่นยำ: ระบุชื่อบริการหรือเวอร์ชันที่ต้องการให้ชัดเจน
ข้อกำหนดเบื้องต้น
ก่อนใช้ 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
(เช่น7.4
หรือ-all
)
คำสั่งและโครงสร้างคำสั่งที่ 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 - ตัวอย่าง: เริ่ม PHP ทุกเวอร์ชันที่มีbash
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 - ตัวอย่าง: หยุด MariaDB ทุกเวอร์ชันที่มีbash
servbayctl stop mariadb -all
1 - ตัวอย่าง: หยุด Redisbash
servbayctl stop redis
1
reload
- รีโหลดการตั้งค่าบริการ
โหลดค่าการตั้งค่าของบริการใหม่ หลังมีการปรับแก้ไฟล์ config โดยไม่ต้องรีสตาร์ท (แต่ไม่ใช่ทุกบริการจะรองรับ hot reload)
bash
servbayctl reload <service> [-all|version]
1
- ตัวอย่าง: รีโหลดการตั้งค่า Caddy Web Serverbash
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
- บังคับปิดบริการ
บังคับฆ่า process ของบริการนั้น ๆ ใช้อย่างระวัง โดยเฉพาะบริการฐานข้อมูล อาจเกิดข้อมูลสูญหาย อาจใช้ในกรณีที่ service หยุดตามปกติไม่ได้
bash
servbayctl kill <service> [-all|version]
1
- ตัวอย่าง: บังคับฆ่า PHP 7.4bash
servbayctl kill php 7.4
1 - ตัวอย่าง: บังคับฆ่า Memcached ทุกเวอร์ชันbash
servbayctl kill memcached -all
1
status
- ตรวจสอบสถานะบริการ
เช็คบริการที่ระบุว่ากำลังทำงานอยู่หรือไม่
bash
servbayctl status <service> [-all|version]
1
- ตัวอย่าง: ตรวจสอบสถานะ Caddybash
servbayctl status caddy
1 - ตัวอย่าง: ตรวจสอบสถานะ MySQL ทุกเวอร์ชันที่ติดตั้งbash
servbayctl status mysql -all
1
stop-all
- หยุดบริการ ServBay ทั้งหมด
หยุดบริการเบื้องหลังทุกตัวที่ดูแลโดย ServBay ใช้งานเป็นกลุ่ม ไม่ต้องระบุ service ใด ๆ
bash
servbayctl stop-all
1
- ตัวอย่าง: หยุดทุกบริการของ ServBaybash
servbayctl stop-all
1
รายชื่อบริการที่รองรับ
ตามที่ระบุใน Usage ของ servbayctl
เครื่องมือนี้ควบคุมบริการเบื้องหลังดังต่อไปนี้โดยตรง:
php
: จัดการ PHP-FPM หลายเวอร์ชันmariadb
: บริการฐานข้อมูล MariaDBmysql
: บริการฐานข้อมูล MySQLpostgresql
: ฐานข้อมูล PostgreSQLredis
: แคชหรือฐานข้อมูล Redismemcached
: แคช Memcachedcaddy
: เว็บเซิร์ฟเวอร์ Caddynginx
: เว็บเซิร์ฟเวอร์ Nginxapache
: HTTP Server Apachednsmasq
: DNS ที่มาพร้อม ServBaymongodb
: ฐานข้อมูล MongoDBrabbitmq
: คิวข้อความ RabbitMQcloudflared
: บริการ Cloudflare Tunnel (หากติดตั้งและตั้งค่าไว้)frpc
: ไคลเอนต์ Fatedier/frp (ต้องติดตั้งและตั้งค่า)mailpit
: บริการดักจับอีเมล Mailpitweb
: บริการ Web ต่าง ๆ (ขึ้นกับการตั้งค่า เช่น web server ที่ทำงาน หรืออินเตอร์เฟซของ ServBay เอง)ollama
: บริการ model ภาษาแบบ local Ollama
หมายเหตุ: servbayctl
สามารถจัดการ backend service หลัก ๆ เช่น Nginx และ Apache ได้โดยตรง ในขณะที่ซอฟต์แวร์เสริมอื่น (เช่น Java, Python, Go, .NET, Ruby, Rust ฯลฯ) มักไม่ใช่บริการพื้นหลังที่ servbayctl
จัดการโดยตรง แต่เป็นเครื่องมือที่ต้องรันผ่านเทอร์มินัลหรือเครื่องมือเฉพาะของแต่ละภาษา
servbayctl
เน้นการจัดการเฉพาะ backend daemon/services ตามรายชื่อข้างต้น
ตัวอย่างกรณีการใช้งาน
ตัวอย่างสถานการณ์การใช้งาน 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สั่ง start สภาพแวดล้อมพัฒนาอัตโนมัติผ่านสคริปต์
bash#!/bin/bash echo "Stopping all ServBay services..." servbayctl stop-all echo "Starting required services..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "ServBay services started."
1
2
3
4
5
6
7
8
9
10
11
12
หมายเหตุและแนวทางปฏิบัติที่ดีที่สุด
- เพิ่ม PATH: แนะนำให้เพิ่มโฟลเดอร์ที่มี
servbayctl
ลง PATH เพื่อเรียกสั้น ๆ - ใช้
kill
อย่างระวัง: คำสั่ง kill จะฆ่าโปรเซสทันที อาจทำให้ข้อมูลหายหรือสถานะเสีย หากไม่จำเป็น ให้เน้นใช้stop
หรือrestart
ก่อน stop-all
เป็นคำสั่งรวม: คำสั่งนี้จะหยุดบริการเบื้องหลังทั้งหมด กรุณาตรวจสอบความต้องการก่อนดำเนินการ- พารามิเตอร์เวอร์ชัน: กรุณาตรวจสอบเวอร์ชันที่มีอยู่ในระบบผ่าน GUI เพื่อป้อนเวอร์ชันให้ถูกต้อง
- การจัดการข้อผิดพลาด: หากคำสั่ง
servbayctl
ผิดพลาด จะมีข้อความ error ปรากฏในเทอร์มินัล ให้ตรวจสอบและดูไฟล์ log ในโฟลเดอร์logs
ภายใต้การติดตั้ง ServBay สำหรับรายละเอียดเชิงลึก - ใช้ GUI ร่วมกับ CLI:
servbayctl
เสริมกับ GUI เหมาะสำหรับงานอัตโนมัติและการบริหารส่วนลึก ส่วน GUI เหมาะสำหรับดูภาพรวมและจัดการที่ซับซ้อน
คำถามที่พบบ่อย (FAQ)
ถาม: เรียก servbayctl
แล้วแจ้งว่า command not found
ทำไงดี?
ตอบ: มักเกิดจากยังไม่ได้เพิ่ม /Applications/ServBay/script
ใน PATH ให้ทำตามขั้นตอนใน "ข้อกำหนดเบื้องต้น" ด้านบนเพื่อเพิ่มไดเรกทอรีลง PATH ของคุณ
ถาม: รัน servbayctl start <service>
แล้วบริการไม่ขึ้น ต้องแก้ไขอย่างไร?
ตอบ:
- เช็คสถานะบริการอีกครั้งด้วย
servbayctl status <service>
- เปิดดูไฟล์ log ในโฟลเดอร์
logs
ของ ServBay เพื่อหาข้อความ error รายละเอียด - ลองสั่งรันผ่าน GUI ซึ่งจะมี error message ที่เข้าใจง่ายขึ้น
- ตรวจสอบความถูกต้องของไฟล์ config บริการนั้น ๆ
ถาม: ทุกบริการรองรับ -all
หรือไม่?
ตอบ: พารามิเตอร์ -all
ส่วนใหญ่ใช้กับบริการที่รองรับการติดตั้งหลายเวอร์ชัน เช่น PHP ส่วน database หลักต่าง ๆ (MySQL, PostgreSQL ฯลฯ) และ Web server เช่น Caddy มักรันเพียงหนึ่ง instance การใช้ -all
จึงเหมือนกับไม่ระบุเวอร์ชัน แต่สำหรับ Redis, Memcached หรือบริการที่อาจมีหลาย instance/พอร์ต ในบางกรณี -all
จะครอบคลุมทั้งหมด (ขึ้นกับ implementation ของ ServBay ด้วย)
สรุป
servbayctl
คืออินเตอร์เฟซบรรทัดคำสั่งอันทรงพลังที่ ServBay มอบให้ เพิ่มความคล่องตัวและประสิทธิภาพในการบริหารจัดการบริการสภาพแวดล้อมพัฒนาในเครื่อง ด้วยการใช้คำสั่ง start
, stop
, reload
, restart
, kill
, status
, stop-all
พร้อมพารามิเตอร์ version
และ -all
คุณจะควบคุมบริการสำคัญต่าง ๆ ได้อย่างง่ายดายผ่านเทอร์มินัล ทั้ง PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy ฯลฯ ส่งเสริมการทำงานแบบอัตโนมัติและประสบการณ์พัฒนาที่ดีขึ้น