أداة سطر الأوامر servbayctl
تُعد servbayctl
أداة قوية من ServBay تُتيح للمطورين إدارة خدمات الخلفية الخاصة بـ ServBay مباشرة من خلال الطرفية. عبر servbayctl
يمكنك بسهولة تنفيذ أوامر مثل بدء، إيقاف، إعادة تحميل، إعادة تشغيل، قتل العمليات، عرض الحالة، أو إيقاف جميع الخدمات دفعة واحدة — ما يجعلها مثالية للأتمتة البرمجية، وسرعة تبديل حالة الخدمات، أو للمطورين الذين يفضلون واجهة الأوامر النصية.
تتناول هذه الوثيقة شرح استخدام servbayctl
بالتفصيل، والأوامر المدعومة، والخيارات، والخدمات المتوافقة.
نظرة عامة
إلى جانب واجهة المستخدم الرسومية GUI سهلة الاستخدام التي تقدمها ServBay لإدارة بيئة الويب المحلية، توفر أيضًا أداة واجهة سطر الأوامر CLI servbayctl
. تتواجد الأداة في مجلد script
ضمن مسار تثبيت ServBay، وتتيح لك التحكم في حالة تشغيل مختلف الحزم البرمجية المثبتة عبر أوامر بسيطة من الطرفية.
من مزايا استخدام servbayctl
:
- الأتمتة: سهولة دمج إدارة الخدمات ضمن سكريبتات سير العمل البرمجية.
- الفعالية: بدء أو إيقاف الخدمات المطلوبة بسرعة دون الحاجة لفتح الواجهة الرسومية.
- المرونة: يمكن استخدامها عبر اتصالات 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
كالتالي:
servbayctl <command> <service> [parameters]
<command>
: العملية المرغوب تنفيذها (مثلstart
,stop
,restart
).<service>
: اسم الخدمة المستهدفة (مثلphp
,mysql
,caddy
).[parameters]
: خيارات اختيارية لتحديد إصدار الخدمة أو النطاق (مثل7.4
أو-all
).
حسب توثيق ServBay، قائمة الأوامر وبنية الاستخدام الأساسية كالتالي:
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]
ملاحظة: أمر stop-all
لا يقبل اسم خدمة أو خيارات إضافية — يقوم ببساطة بإيقاف جميع الخدمات التي يديرها ServBay دفعة واحدة.
شرح الأوامر المدعومة
فيما يلي شرح مفصل لكل أمر مدعوم في servbayctl
مع أمثلة:
start
– بدء الخدمة
بدء تشغيل الخدمة المستهدفة. يمكنك تحديد إصدار معين أو استخدام الخيار -all
لتشغيل جميع الإصدارات المثبتة في آن واحد.
servbayctl start <service> [-all|version]
- مثال: بدء خدمة PHP الإصدار 8.1bash
servbayctl start php 8.1
1 - مثال: بدء جميع إصدارات PHP المثبتةbash
servbayctl start php -all
1 - مثال: بدء خدمة MySQL بالإعدادات الافتراضيةbash
servbayctl start mysql
1
stop
– إيقاف الخدمة
إيقاف الخدمة المستهدفة. يمكنك كذلك استهداف إصدار معين أو جميع الإصدارات المثبتة.
servbayctl stop <service> [-all|version]
- مثال: إيقاف خدمة PHP الإصدار 7.4bash
servbayctl stop php 7.4
1 - مثال: إيقاف جميع إصدارات MariaDB المثبتةbash
servbayctl stop mariadb -all
1 - مثال: إيقاف خدمة Redisbash
servbayctl stop redis
1
reload
– إعادة تحميل إعدادات الخدمة
إعادة تحميل إعدادات خدمة معينة (عادة بعد تعديل ملف الإعدادات)، ما يسمح بتطبيق التغييرات دون إعادة تشغيل الخدمة بالكامل. ليس كل الخدمات تدعم إعادة التحميل الفوري (hot reload).
servbayctl reload <service> [-all|version]
- مثال: إعادة تحميل إعدادات خادم الويب Caddybash
servbayctl reload caddy
1 - مثال: إعادة تحميل إعدادات جميع إصدارات PHP (في حال دعمها)bash
servbayctl reload php -all
1
restart
– إعادة تشغيل الخدمة
إعادة تشغيل الخدمة المطلوبة (تعادل الإيقاف ثم البدء المتتالي).
servbayctl restart <service> [-all|version]
- مثال: إعادة تشغيل خدمة قاعدة بيانات PostgreSQLbash
servbayctl restart pgsql
1 - مثال: إعادة تشغيل جميع إصدارات Redis (في حال تثبيت أكثر من إصدار)bash
servbayctl restart redis -all
1
kill
– قتل عملية الخدمة قسريًا
إنهاء عملية خدمة محددة بشكل إجباري وفوري. يُستخدم بحذر شديد، لأنه قد يؤدي إلى فقدان البيانات أو تلفها، خصوصًا في قواعد البيانات، ويُنصح به فقط عند تعذر الإيقاف التقليدي.
servbayctl kill <service> [-all|version]
- مثال: قتل عملية خدمة PHP الإصدار 7.4 بالإجبارbash
servbayctl kill php 7.4
1 - مثال: قتل جميع عمليات خدمة Memcachedbash
servbayctl kill memcached -all
1
status
– عرض حالة الخدمة
معرفة الحالة الحالية لخدمة معينة (ما إذا كانت نشطة أم متوقفة).
servbayctl status <service> [-all|version]
- مثال: عرض حالة خدمة Caddybash
servbayctl status caddy
1 - مثال: عرض حالة جميع إصدارات MySQL المثبتةbash
servbayctl status mysql -all
1
stop-all
– إيقاف جميع خدمات ServBay
إيقاف كافة خدمات الخلفية التي يديرها ServBay في الحال. أمر شامل ولا يقبل أسماء خدمات أو إصدارات.
servbayctl stop-all
- مثال: إيقاف جميع خدمات ServBay دفعة واحدةbash
servbayctl stop-all
1
قائمة الخدمات المدعومة
حسب التوثيق الرسمي، يمكنك عبر 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 Tunnel (إذا كانت مثبتة ومهيئة).frpc
: إدارة عميل Fatedier/frp (إن وجد).mailpit
: إدارة خدمة التقاط البريد Mailpit.web
: إدارة خدمات الويب (حسب التفعيل الفعلي، مثل خادم ويب نشط أو واجهة ServBay).ollama
: إدارة خدمة نماذج الذكاء الاصطناعي المحلية Ollama.
يرجى الانتباه أن servbayctl
يدير فقط الخدمات الخلفية الأساسية المذكورة. بينما يمكن تثبيت العديد من الحزم التقنية الأخرى (كـ Java، Python، Go، .NET، Ruby، Rust وغيرها)، إلا أن هذه عادة لا تعمل كخدمات daemon يديرها 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 "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-all
إجراء شامل: ينهي جميع الخدمات التي يديرها ServBay؛ تأكد من أن ذلك ما تريده.- معلمات الإصدارات: عند استخدام خيار
version
، تأكد أن الإصدار مستثبت ومدعوم، ويمكنك معرفة الإصدارات المتاحة عبر واجهة ServBay الرسومية. - معالجة الأخطاء: إذا تعذر تنفيذ أمر
servbayctl
ستظهر رسالة خطأ في الطرفية؛ اتبع التعليمات أو راجع سجل الأخطاء ضمن مجلدlogs
في مسار تثبيت ServBay للحصول على تفاصيل أكبر. - تكامل GUI وCLI: أداة
servbayctl
تُكمل واجهة ServBay الرسومية ولا تستبدلها بالكامل؛ للإعدادات المتقدمة أو النظرة الشاملة، الواجهة الرسومية عادة الأسهل.
الأسئلة الشائعة (FAQ)
س: عند تشغيل أمر servbayctl
ظهرت رسالة command not found
– ماذا أفعل؟
ج: غالبًا السبب عدم إضافة مسار /Applications/ServBay/script
إلى متغير PATH للنظام. راجع قسم "المتطلبات الأساسية" لمعرفة كيفية إضافته.
س: شغلت أمر servbayctl start <service>
لكن الخدمة لم تعمل، كيف أتحقق من السبب؟
ج:
- استخدم
servbayctl status <service>
للتحقق من حالة الخدمة. - اطلع على مجلد
logs
في مسار تثبيت ServBay وابحث في سجلات الأخطاء الخاصة بالخدمة لمزيد من التفاصيل. - جرب تشغيل الخدمة نفسها عبر واجهة ServBay الرسومية، فقد تعرض رسائل خطأ أكثر وضوحًا.
- تحقق من صحة إعدادات ملفات الخدمة.
س: هل الخيار -all
متاح لجميع الخدمات؟
ج: خيار -all
يُستخدم عادة في الخدمات التي تدعم تثبيت عدة إصدارات مثل PHP. بالنسبة لمعظم قواعد البيانات (MySQL, PostgreSQL...) وخوادم الويب عادةً ما يكون هناك نسخة واحدة تعمل؛ لذا يُعتبر خيار -all
مماثل لاستهداف اسم الخدمة مباشرة. بعض الخدمات كـ Redis أو Memcached قد تدعم تشغيل عدة نسخ عبر منافذ مختلفة، ويقوم الأمر في هذه الحالة بالتعامل مع كل النسخ (حسب طريقة تنفيذ ServBay داخليًا).
الخلاصة
servbayctl
أداة قوية من ServBay ترفع من مستوى التحكم والمرونة في إدارة خدمات بيئة التطوير المحلية عبر سطر الأوامر. بإتقان أوامر مثل start
, stop
, reload
, restart
, kill
, status
, وstop-all
، والاستفادة من خياري version
و-all
، يمكنك إدارة جميع الخدمات المدعومة من ServBay مثل PHP، MySQL، MariaDB، PostgreSQL، MongoDB، Redis، Memcached، Caddy وغيرها ببساطة وكفاءة، مما يعزز قدرتك على الأتمتة ويرتقي بتجربة تطويرك إلى مستوى أكثر احترافية وفعالية.