macOS companion app

چرخهٔ حیات Gateway در macOS

برنامهٔ macOS به‌طور پیش‌فرض Gateway را از طریق launchd مدیریت می‌کند و Gateway را به‌عنوان فرایند فرزند اجرا نمی‌کند. برنامه ابتدا تلاش می‌کند به Gateway در حال اجرایی روی درگاه پیکربندی‌شده متصل شود؛ اگر هیچ‌کدام در دسترس نباشد، سرویس launchd را از طریق CLI خارجی openclaw فعال می‌کند (بدون محیط اجرای تعبیه‌شده). این روش، شروع خودکار قابل‌اعتماد هنگام ورود به سیستم و راه‌اندازی مجدد پس از خرابی را فراهم می‌کند.

حالت فرایند فرزند (که در آن Gateway مستقیماً توسط برنامه اجرا می‌شود) در حال حاضر استفاده نمی‌شود. اگر به یکپارچگی نزدیک‌تری با رابط کاربری نیاز دارید، Gateway را به‌صورت دستی در ترمینال اجرا کنید.

رفتار پیش‌فرض (launchd)

  • برنامه یک LaunchAgent مخصوص هر کاربر با برچسب ai.openclaw.gateway نصب می‌کند (یا هنگام استفاده از --profile/OPENCLAW_PROFILE، برچسب ai.openclaw.<profile>).
  • هنگامی که حالت محلی فعال است، برنامه اطمینان حاصل می‌کند که LaunchAgent بارگذاری شده است و در صورت نیاز Gateway را راه‌اندازی می‌کند.
  • گزارش‌ها در مسیر گزارش Gateway مربوط به launchd نوشته می‌شوند (در تنظیمات اشکال‌زدایی قابل مشاهده است).

فرمان‌های رایج:

bash
launchctl kickstart -k gui/$UID/ai.openclaw.gatewaylaunchctl bootout gui/$UID/ai.openclaw.gateway

هنگام اجرای یک پروفایل نام‌گذاری‌شده، برچسب را با ai.openclaw.<profile> جایگزین کنید.

بیلدهای توسعهٔ بدون امضا

scripts/restart-mac.sh --no-sign برای بیلدهای سریع محلی بدون کلیدهای امضا است. برای جلوگیری از اشارهٔ launchd به یک فایل اجرایی رلهٔ بدون امضا، این فرمان ~/.openclaw/disable-launchagent را ایجاد می‌کند.

اجرای امضاشدهٔ scripts/restart-mac.sh در صورت وجود نشانگر، این بازنویسی را پاک می‌کند. برای بازنشانی دستی:

bash
rm ~/.openclaw/disable-launchagent

حالت فقط اتصال

برای اینکه برنامهٔ macOS هرگز launchd را نصب یا مدیریت نکند، آن را با --attach-only (یا --no-launchd) اجرا کنید. این گزینه ~/.openclaw/disable-launchagent را تنظیم می‌کند؛ بنابراین برنامه فقط به یک Gateway از قبل در حال اجرا متصل می‌شود. همین رفتار را می‌توانید در تنظیمات اشکال‌زدایی تغییر دهید.

حالت راه‌دور

حالت راه‌دور هرگز Gateway محلی را راه‌اندازی نمی‌کند. برنامه از یک تونل SSH به میزبان راه‌دور استفاده می‌کند و از طریق آن تونل متصل می‌شود.

چرا launchd را ترجیح می‌دهیم

  • شروع خودکار هنگام ورود به سیستم.
  • سازوکارهای داخلی راه‌اندازی مجدد/KeepAlive.
  • گزارش‌ها و نظارت قابل‌پیش‌بینی.

اگر دوباره به یک حالت واقعی فرایند فرزند نیاز باشد، باید به‌عنوان حالتی جداگانه، صریح و مختص توسعه مستند شود.

مرتبط

Was this useful?
On this page

On this page