دورة حياة البوابة
يتولى تطبيق macOS إدارة البوابة عبر launchd افتراضيًا ولا يقوم بإنشاء البوابة كعملية فرعية. يحاول أولاً الاتصال ببوابة قيد التشغيل بالفعل على المنفذ المُهيأ؛ إذا لم تكن هناك بوابة يمكن الوصول إليها، فإنه يقوم بتمكين خدمة launchd عبر واجهة سطر الأوامر الخارجية openclaw (بدون وقت تشغيل مضمن). وهذا يمنحك بدءًا تلقائيًا موثوقًا به عند تسجيل الدخول وإعادة تشغيل عند حدوث أعطال. وضع العملية الفرعية (الإنشاء المباشر للبوابة بواسطة التطبيق) غير مستخدم حاليًا. إذا كنت بحاجة إلى اقتران أوثق بواجهة المستخدم، قم بتشغيل البوابة يدويًا في طرفية.
السلوك الافتراضي (launchd)
- يقوم التطبيق بتثبيت وكيل إطلاق لكل مستخدم يحمل التسمية
ai.openclaw.gateway(أوai.openclaw.<profile>عند استخدام--profile/OPENCLAW_PROFILE؛ التسمية القديمةcom.openclaw.*مدعومة). - عند تمكين الوضع المحلي، يضمن التطبيق تحميل وكيل الإطلاق ويبدأ تشغيل البوابة إذا لزم الأمر.
- يتم كتابة السجلات إلى مسار سجل بوابة launchd (مرئي في إعدادات التصحيح).
الأوامر الشائعة:
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
launchctl bootout gui/$UID/ai.openclaw.gateway
استبدل التسمية بـ ai.openclaw.<profile> عند تشغيل ملف تعريف مسمى.
إصدارات التطوير غير الموقعة
scripts/restart-mac.sh --no-sign مخصصة للبناءات المحلية السريعة عندما لا تملك مفاتيح توقيع. لمنع launchd من الإشارة إلى ثنائي الترحيل غير الموقع، فإنه:
- يكتب
~/.openclaw/disable-launchagent.
تشغيلات scripts/restart-mac.sh الموقعة تزيل هذا التجاوز إذا كان العلام موجودًا. لإعادة التعيين يدويًا:
rm ~/.openclaw/disable-launchagent
وضع الإرفاق فقط
لإجبار تطبيق macOS على عدم تثبيت أو إدارة launchd مطلقًا، قم بتشغيله باستخدام --attach-only (أو --no-launchd). هذا يضبط ~/.openclaw/disable-launchagent، بحيث يقتصر التطبيق على الاتصال ببوابة قيد التشغيل بالفعل. يمكنك تبديل نفس السلوك في إعدادات التصحيح.
الوضع البعيد
الوضع البعيد لا يبدأ بوابة محلية أبدًا. يستخدم التطبيق نفق SSH إلى المضيف البعيد ويتصل عبر ذلك النفق.
لماذا نفضل launchd
- البدء التلقائي عند تسجيل الدخول.
- دلالات إعادة التشغيل/KeepAlive المدمجة.
- سجلات وإشراف يمكن التنبؤ بهما.
إذا كانت هناك حاجة لوضع عملية فرعية حقيقية مرة أخرى، فيجب توثيقها كوضع منفصل وصريح مخصص للتطوير فقط.