إذا قمت بتغيير إعدادات إحدى خدمات Homebrew وتريد تطبيقها، فأعد تشغيل تلك الخدمة باستخدام اسم الصيغة (formula) الخاصة بها: brew services restart formula. على سبيل المثال، استخدم brew services restart postgresql@16 إذا كانت هذه هي الصيغة التي قمت بتثبيتها. يقوم Homebrew بإيقاف الخدمة إذا لزم الأمر، ثم يعيد تشغيلها مجددًا، ويسجلها لتبدأ العمل عند تسجيل الدخول. تحقق من قائمة الخدمات بعد ذلك للتأكد من حالتها المسجلة.
قبل إعادة التشغيل، حدد الخدمة والإعدادات
تدير خدمات Homebrew العمليات التي تعمل في الخلفية من خلال launchctl الخاص بنظام macOS. وبدون استخدام sudo، يتعامل Homebrew مع ملفات LaunchAgents الخاصة بالمستخدم الحالي، والمصممة لتبدأ العمل عند تسجيل الدخول. أما عند استخدام sudo، فإنه يتعامل مع ملفات LaunchDaemons الخاصة بالنظام، والمصممة لتبدأ العمل عند إقلاع النظام. يوضح مرجع brew services الخاص بـ Homebrew هذا الفارق، لذا استخدم نفس مستوى الصلاحيات الذي استُخدم في الأصل لبدء الخدمة؛ إذ قد يؤدي التبديل بين سياق المستخدم وسياق الجذر (root) إلى فحص أو تعديل تسجيل خدمة مختلفة.
إذا لم تكن متأكدًا من اسم الصيغة، فاعرض قائمة الخدمات التي يديرها Homebrew لمستخدمك الحالي:
brew services list
يمكن أن تعرض القائمة اسم الخدمة وحالتها والمستخدم ومسار ملف plist. استخدم اسم الصيغة المعروض هناك في أمر إعادة التشغيل. تجنب استخدام الخيار --all إلا إذا كنت تنوي إعادة تشغيل كل خدمة مدارة، لأنه سيؤثر على خدمات أخرى غير تلك التي عدّلت إعداداتها. يوثق المرجع أيضًا استخدام brew services list --debug للحصول على مخرجات إضافية من Homebrew وlaunchctl عند استكشاف الأخطاء وإصلاحها.
تطبيق التغيير باستخدام brew services restart
نفّذ أمر إعادة التشغيل في تطبيق Terminal باستخدام نفس حساب macOS الذي يشغّل الخدمة:
brew services restart postgresql@16
استبدل postgresql@16 بالصيغة التي وجدتها في قائمة الخدمات؛ فالاسم المتضمن لرقم الإصدار مجرد مثال. يحدد Homebrew وظيفة restart بأنها إيقاف الخدمة إذا لزم الأمر وتشغيلها على الفور، مع تسجيلها لتبدأ عند تسجيل الدخول (أو عند إقلاع النظام عند استخدامها مع sudo). وهذا يجعل أمر إعادة التشغيل مناسبًا عندما تحتاج خدمة قيد التشغيل إلى إعادة تحميل الإعدادات. يسرد مرجع الأوامر هذا السلوك والخيارات الإضافية --all و--file.
لا تضف sudo تلقائيًا. استخدمه فقط إذا كانت الخدمة قد سُجلت عن قصد كخدمة نظام وكنت تنوي إدارة التسجيل على مستوى الجذر (root). وبخلاف ذلك، قد يستهدف sudo ملف LaunchDaemon مختلفًا، وقد تظل الخدمة على مستوى المستخدم دون أي تغيير. وإذا كنت تريد ببساطة تشغيل عملية لمرة واحدة دون تسجيلها لتبدأ عند تسجيل الدخول، فإن Homebrew يوثق أمر brew services run formula؛ وهذا الأمر لا يُعد بديلاً لإعادة التشغيل لخدمة تتوقع أن تظل قيد الإدارة.
التحقق من النتيجة واستكشاف أخطاء إعادة التشغيل الفاشلة وإصلاحها
بعد اكتمال تنفيذ الأمر، تحقق من قائمة الخدمات المدارة مرة أخرى:
brew services list
تأكد من ظهور الصيغة المطلوبة بحالة تشغيل (started) وافحص المستخدم ومسار ملف plist الخاص بها. تؤكد حالة البدء أن Homebrew يفيد بأنها قد بدأت، لكنها لا تثبت بشكل مستقل أن التطبيق قد قبل الإعدادات الجديدة أو أنه يستجيب للطلبات. تحقق من التطبيق باستخدام فحص الحالة الموثق الخاص به أو من خلال مراقبة السلوك الذي يتحكم فيه الإعداد المعدّل.
إذا لم تبدأ الخدمة، فنفّذ أمر القائمة مع الخيار --debug واقرأ مخرجات الأخطاء أو سجلات الخدمة نفسها قبل إجراء المزيد من التغييرات. تحقق من صحة صياغة إعدادات التطبيق وأذونات الملفات والمسارات مقارنةً بوثائق ذلك التطبيق. يبدأ أمر الخدمة في Homebrew بتشغيل الخدمة باستخدام تعريف الخدمة الخاص بها؛ وهو لا يتحقق من صحة كل خيار إعداد خاص بالتطبيق. تجنب تعديل ملفات plist المنشأة كحل أولي: فآلية التهيئة الموثقة في Homebrew تعتمد على الإعداد الذي تحتاج إلى تغييره.
عندما يكون التغيير متغير بيئة
إذا كان التغيير الذي أجريته هو متغير بيئة للخدمة، فإن Homebrew يوثق ملف بيئة مخصصًا لكل صيغة. وبشكل افتراضي، ضعه في المسار ~/.homebrew/services/formula.env؛ وإذا تم تعيين HOMEBREW_USER_CONFIG_HOME، فسيكون الدليل هو $HOMEBREW_USER_CONFIG_HOME/services. استخدم صيغة KEY=value واحدة لكل سطر، مع وضع # في بداية سطر التعليق. ثم أعد تشغيل الخدمة؛ ويوضح Homebrew أن هذه القيم تسري عند إعادة التشغيل التالية وتستمر عبر الترقيات. راجع إرشادات بيئة الخدمة في مرجع Homebrew.
على سبيل المثال، تنسيق الملف الموثق هو KEY=value، ولكن يجب أن يؤخذ اسم المتغير وقيمته من وثائق التطبيق. لا تفترض أن كل تطبيق يقبل متغيرات بيئة عشوائية، ولا تلصق معلومات سرية في ملف البيئة دون التفكير فيمن يمكنه قراءتها. وإذا كان تغيير الإعدادات لديك هو ملف تهيئة للتطبيق بدلاً من متغير بيئة، فعدّل موقع الملف المحدد بواسطة ذلك التطبيق، ثم استخدم نفس أمر إعادة التشغيل.
التسلسل الموثوق هو: تحديد الصيغة الدقيقة وسياق الخدمة، وتعديل الإعداد في الموقع المحدد في وثائق التطبيق أو Homebrew، وإعادة تشغيل تلك الصيغة وحدها، والتحقق من حالة Homebrew وسلوك التطبيق معًا.
المصادر
- Manpage.md — Homebrew