أداة سطر الأوامر 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 كالتالي:
bash
servbayctl <command> <service> [parameters]1
<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]1
ملاحظة: أمر stop-all لا يقبل اسم خدمة أو خيارات إضافية — يقوم ببساطة بإيقاف جميع الخدمات التي يديرها ServBay دفعة واحدة.
شرح الأوامر المدعومة
فيما يلي شرح مفصل لكل أمر مدعوم في servbayctl مع أمثلة:
start – بدء الخدمة
بدء تشغيل الخدمة المستهدفة. يمكنك تحديد إصدار معين أو استخدام الخيار -all لتشغيل جميع الإصدارات المثبتة في آن واحد.
bash
servbayctl start <service> [-all|version]1
- مثال: بدء خدمة PHP الإصدار 8.1bash
servbayctl start php 8.11 - مثال: بدء جميع إصدارات PHP المثبتةbash
servbayctl start php -all1 - مثال: بدء خدمة MySQL بالإعدادات الافتراضيةbash
servbayctl start mysql1
stop – إيقاف الخدمة
إيقاف الخدمة المستهدفة. يمكنك كذلك استهداف إصدار معين أو جميع الإصدارات المثبتة.
bash
servbayctl stop <service> [-all|version]1
- مثال: إيقاف خدمة PHP الإصدار 7.4bash
servbayctl stop php 7.41 - مثال: إيقاف جميع إصدارات MariaDB المثبتةbash
servbayctl stop mariadb -all1 - مثال: إيقاف خدمة Redisbash
servbayctl stop redis1
reload – إعادة تحميل إعدادات الخدمة
إعادة تحميل إعدادات خدمة معينة (عادة بعد تعديل ملف الإعدادات)، ما يسمح بتطبيق التغييرات دون إعادة تشغيل الخدمة بالكامل. ليس كل الخدمات تدعم إعادة التحميل الفوري (hot 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.4 بالإجبارbash
servbayctl kill php 7.41 - مثال: قتل جميع عمليات خدمة Memcachedbash
servbayctl kill memcached -all1
status – عرض حالة الخدمة
معرفة الحالة الحالية لخدمة معينة (ما إذا كانت نشطة أم متوقفة).
bash
servbayctl status <service> [-all|version]1
- مثال: عرض حالة خدمة Caddybash
servbayctl status caddy1 - مثال: عرض حالة جميع إصدارات MySQL المثبتةbash
servbayctl status mysql -all1
stop-all – إيقاف جميع خدمات ServBay
إيقاف كافة خدمات الخلفية التي يديرها ServBay في الحال. أمر شامل ولا يقبل أسماء خدمات أو إصدارات.
bash
servbayctl stop-all1
- مثال: إيقاف جميع خدمات ServBay دفعة واحدةbash
servbayctl stop-all1
قائمة الخدمات المدعومة
حسب التوثيق الرسمي، يمكنك عبر 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.21
2إعادة تشغيل خدمة قاعدة البيانات لتطبيق تغييرات الإعدادات:
bash# في حال قمت بتعديل my.cnf أو my.ini servbayctl restart mysql1
2التأكد من إيقاف جميع الخدمات عند إيقاف الجهاز أو قبل ترقية ServBay:
bashservbayctl stop-all1التحقق من تشغيل خادم الويب:
bashservbayctl status caddy1تشغيل خدمات بيئة التطوير تلقائيًا عبر سكريبت:
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 وغيرها ببساطة وكفاءة، مما يعزز قدرتك على الأتمتة ويرتقي بتجربة تطويرك إلى مستوى أكثر احترافية وفعالية.
