دورة حياة Gateway على macOS
يدير تطبيق macOS Gateway عبر launchd افتراضيًا ولا يقوم بتشغيل Gateway كعملية تابعة. يحاول أولًا الارتباط بـ Gateway يعمل بالفعل على المنفذ المُهيّأ؛ وإذا لم يكن أيٌّ منها متاحًا، يفعّل خدمة launchd عبر CLI الخارجيopenclaw (من دون وقت تشغيل مضمّن). يوفّر ذلك بدءًا تلقائيًا موثوقًا عند تسجيل الدخول وإعادة تشغيل عند الأعطال.
وضع العملية التابعة (تشغيل Gateway مباشرةً بواسطة التطبيق) غير مستخدم حاليًا.
إذا كنت بحاجة إلى اقتران أوثق بواجهة المستخدم، شغّل Gateway يدويًا في الطرفية.
السلوك الافتراضي (launchd)
- يثبّت التطبيق LaunchAgent لكل مستخدم بالوسم
bot.molt.gateway(أوbot.molt.<profile>عند استخدام--profile/OPENCLAW_PROFILE؛ ويتم دعمcom.openclaw.*القديم). - عند تمكين الوضع المحلي، يضمن التطبيق تحميل LaunchAgent ويبدأ Gateway عند الحاجة.
- تُكتب السجلات إلى مسار سجل Gateway الخاص بـ launchd (مرئي في إعدادات التصحيح).
bot.molt.<profile> عند تشغيل ملف تعريف مُسمّى.
إصدارات التطوير غير الموقّعة
scripts/restart-mac.sh --no-sign مخصّص للبناءات المحلية السريعة عندما لا تتوفر مفاتيح التوقيع. ولمنع launchd من الإشارة إلى ثنائي relay غير موقّع، فإنه:
- يكتب
~/.openclaw/disable-launchagent.
scripts/restart-mac.sh بمسح هذا التجاوز إذا كان المُعلِّم موجودًا. لإعادة الضبط يدويًا:
وضع الارتباط فقط
لإجبار تطبيق macOS على عدم تثبيت أو إدارة launchd مطلقًا، شغّله باستخدام--attach-only (أو --no-launchd). يضبط هذا ~/.openclaw/disable-launchagent،
بحيث يقتصر التطبيق على الارتباط بـ Gateway يعمل بالفعل. يمكنك تبديل السلوك نفسه في إعدادات التصحيح.
الوضع البعيد
لا يبدأ الوضع البعيد Gateway محليًا مطلقًا. يستخدم التطبيق نفق SSH إلى المضيف البعيد ويتصل عبر ذلك النفق.لماذا نفضّل launchd
- بدء تلقائي عند تسجيل الدخول.
- دلالات KeepAlive وإعادة التشغيل المدمجة.
- سجلات وإشراف متوقّعان.