CLI commands
Gateway
Gateway سرور WebSocketِ OpenClaw است (کانالها، Nodeها، نشستها، هوکها). زیردستورهای این صفحه زیر openclaw gateway … قرار دارند.
راهاندازی mDNS محلی + DNS-SD گسترهوسیع.
OpenClaw چگونه Gatewayها را اعلام میکند و مییابد.
کلیدهای سطحبالای پیکربندی Gateway.
اجرای Gateway
یک فرایند Gateway محلی اجرا کنید:
openclaw gatewayنام مستعار اجرای پیشزمینه:
openclaw gateway runرفتار راهاندازی
- بهصورت پیشفرض، Gateway از شروع خودداری میکند مگر اینکه
gateway.mode=localدر~/.openclaw/openclaw.jsonتنظیم شده باشد. برای اجراهای موردی/توسعهای از--allow-unconfiguredاستفاده کنید. openclaw onboard --mode localوopenclaw setupبایدgateway.mode=localرا بنویسند. اگر فایل وجود دارد اماgateway.modeموجود نیست، آن را یک پیکربندی خراب یا بازنویسیشده تلقی کنید و بهجای اینکه حالت محلی را بهطور ضمنی فرض کنید، آن را تعمیر کنید.- اگر فایل وجود دارد و
gateway.modeموجود نیست، Gateway آن را آسیب مشکوک به پیکربندی تلقی میکند و از حدس زدن «local» برای شما خودداری میکند. - بایند شدن فراتر از loopback بدون احراز هویت مسدود است (محدودیت ایمنی).
- وقتی مجاز باشد،
SIGUSR1یک راهاندازی مجدد درونفرایندی را فعال میکند (commands.restartبهصورت پیشفرض فعال است؛ برای مسدود کردن راهاندازی مجدد دستی،commands.restart: falseرا تنظیم کنید، در حالی که اعمال/بهروزرسانی ابزار/پیکربندی Gateway همچنان مجاز میماند). - هندلرهای
SIGINT/SIGTERMفرایند Gateway را متوقف میکنند، اما هیچ وضعیت سفارشی ترمینال را بازنمیگردانند. اگر CLI را با یک TUI یا ورودی حالت خام میپوشانید، پیش از خروج ترمینال را بازیابی کنید.
گزینهها
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
پورت WebSocket (پیشفرض از پیکربندی/محیط میآید؛ معمولاً 18789).
"--bind"--authOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
بازنویسی توکن (همچنین OPENCLAW_GATEWAY_TOKEN را برای فرایند تنظیم میکند).
"--password"--tailscale--tailscale-reset-on-exitbooleanپیکربندی serve/funnel در Tailscale را هنگام خاموشی بازنشانی کنید.
--allow-unconfiguredbooleanشروع Gateway را بدون gateway.mode=local در پیکربندی مجاز کنید. فقط برای راهاندازی اولیه موردی/توسعهای، گارد راهاندازی را دور میزند؛ فایل پیکربندی را نمینویسد یا تعمیر نمیکند.
--devbooleanاگر موجود نیست، پیکربندی توسعه + فضای کاری ایجاد کنید (از BOOTSTRAP.md عبور میکند).
--resetbooleanپیکربندی توسعه + اعتبارنامهها + نشستها + فضای کاری را بازنشانی کنید (به --dev نیاز دارد).
--forcebooleanپیش از شروع، هر شنونده موجود روی پورت انتخابشده را خاتمه دهید.
--verbosebooleanگزارشهای مفصل.
--cli-backend-logsbooleanفقط گزارشهای بکاند CLI را در کنسول نشان دهید (و stdout/stderr را فعال کنید).
"--ws-log--compactbooleanنام مستعار برای --ws-log compact.
--raw-streambooleanرویدادهای جریان خام مدل را در jsonl ثبت کنید.
راهاندازی مجدد Gateway
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceopenclaw gateway restart --safe از Gateway در حال اجرا میخواهد پیش از راهاندازی مجدد، کار فعال OpenClaw را پیشبررسی کند. اگر عملیات صفشده، تحویل پاسخ، اجراهای تعبیهشده، یا اجراهای وظیفه فعال باشند، Gateway مسدودکنندهها را گزارش میکند، درخواستهای تکراری راهاندازی مجدد ایمن را ادغام میکند، و وقتی کار فعال تخلیه شد راهاندازی مجدد انجام میدهد. restart ساده برای سازگاری، رفتار موجود مدیر سرویس را حفظ میکند. فقط زمانی از --force استفاده کنید که صراحتاً مسیر override فوری را میخواهید.
openclaw gateway restart --safe --skip-deferral همان راهاندازی مجدد هماهنگ و آگاه از OpenClaw را مانند --safe اجرا میکند، اما گیت تعویق کار فعال را دور میزند تا Gateway حتی وقتی مسدودکنندهها گزارش شدهاند، راهاندازی مجدد را فوراً صادر کند. وقتی یک تعویق بهخاطر اجرای وظیفه گیرکرده قفل شده و --safe بهتنهایی برای همیشه منتظر میماند، از آن بهعنوان گزینه خروج اپراتور استفاده کنید. --skip-deferral به --safe نیاز دارد.
پروفایلگیری راهاندازی
OPENCLAW_GATEWAY_STARTUP_TRACE=1را تنظیم کنید تا زمانبندی فازها هنگام راهاندازی Gateway ثبت شود، از جمله تأخیرeventLoopMaxبرای هر فاز و زمانبندیهای جدول جستوجوی Plugin برای شاخص نصبشده، رجیستری مانیفست، برنامهریزی راهاندازی، و کار نقشه مالک.OPENCLAW_DIAGNOSTICS=timelineرا همراه باOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>تنظیم کنید تا یک timeline تشخیصی راهاندازی JSONL با بهترین تلاش برای هارنسهای QA خارجی نوشته شود. همچنین میتوانید این پرچم را باdiagnostics.flags: ["timeline"]در پیکربندی فعال کنید؛ مسیر همچنان از محیط تأمین میشود. برای شامل کردن نمونههای حلقه رویداد،OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1را اضافه کنید.- برای بنچمارک کردن راهاندازی Gateway،
pnpm test:startup:gateway -- --runs 5 --warmup 1را اجرا کنید. بنچمارک اولین خروجی فرایند،/healthz،/readyz، زمانبندیهای ردگیری راهاندازی، تأخیر حلقه رویداد، و جزئیات زمانبندی جدول جستوجوی Plugin را ثبت میکند.
پرسوجو از یک Gateway در حال اجرا
همه دستورهای پرسوجو از WebSocket RPC استفاده میکنند.
حالتهای خروجی
- پیشفرض: قابلخواندن برای انسان (رنگی در TTY).
--json: JSON قابلخواندن برای ماشین (بدون سبکدهی/نشانگر چرخان).--no-color(یاNO_COLOR=1): ANSI را غیرفعال کنید، با حفظ چینش انسانی.
گزینههای مشترک
--url <url>: URL مربوط به WebSocket Gateway.--token <token>: توکن Gateway.--password <password>: گذرواژه Gateway.--timeout <ms>: مهلت/بودجه زمانی (بسته به دستور متفاوت است).--expect-final: منتظر یک پاسخ «final» بمانید (فراخوانیهای عامل).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789اندپوینت HTTP /healthz یک پروب زندهبودن است: بهمحض اینکه سرور بتواند به HTTP پاسخ دهد، برمیگردد. اندپوینت HTTP /readyz سختگیرتر است و تا وقتی سایدکارهای Plugin راهاندازی، کانالها، یا هوکهای پیکربندیشده هنوز در حال پایدار شدن هستند، قرمز میماند. پاسخهای تفصیلی آمادگی محلی یا احراز هویتشده شامل یک بلوک تشخیصی eventLoop با تأخیر حلقه رویداد، بهرهبرداری حلقه رویداد، نسبت هسته CPU، و یک پرچم degraded هستند.
gateway usage-cost
خلاصههای هزینه مصرف را از گزارشهای نشست دریافت کنید.
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --json"--daysgateway stability
ثبتکننده اخیر پایداری تشخیصی را از یک Gateway در حال اجرا دریافت کنید.
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --jsonOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
حداکثر تعداد رویدادهای اخیر برای شامل کردن (حداکثر 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
بر اساس نوع رویداد تشخیصی، مانند payload.large یا diagnostic.memory.pressure فیلتر کنید.
"--since-seq--bundle [path]stringبهجای فراخوانی Gateway در حال اجرا، یک بسته پایداری ذخیرهشده را بخوانید. برای جدیدترین بسته زیر دایرکتوری وضعیت، از --bundle latest (یا فقط --bundle) استفاده کنید، یا مسیر JSON بسته را مستقیماً بدهید.
--exportbooleanبهجای چاپ جزئیات پایداری، یک zip تشخیص پشتیبانی قابلاشتراک بنویسید.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
مسیر خروجی برای --export.
حریم خصوصی و رفتار بسته
- رکوردها فراداده عملیاتی را نگه میدارند: نام رویدادها، شمارشها، اندازههای بایت، خوانشهای حافظه، وضعیت صف/نشست، نام کانال/Plugin، و خلاصههای نشست ویرایششده. آنها متن چت، بدنههای Webhook، خروجیهای ابزار، بدنههای خام درخواست یا پاسخ، توکنها، کوکیها، مقادیر محرمانه، نام میزبانها، یا شناسههای خام نشست را نگه نمیدارند. برای غیرفعال کردن کامل ثبتکننده،
diagnostics.enabled: falseرا تنظیم کنید. - هنگام خروجهای fatal از Gateway، timeoutهای خاموشی، و شکستهای راهاندازی پس از restart، وقتی ثبتکننده رویداد دارد، OpenClaw همان اسنپشات تشخیصی را در
~/.openclaw/logs/stability/openclaw-stability-*.jsonمینویسد. جدیدترین بسته را باopenclaw gateway stability --bundle latestبررسی کنید؛--limit،--type، و--since-seqنیز برای خروجی بسته اعمال میشوند.
gateway diagnostics export
یک zip تشخیصی محلی بنویسید که برای پیوست کردن به گزارشهای باگ طراحی شده است. برای مدل حریم خصوصی و محتوای بسته، صدور تشخیصها را ببینید.
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanجستوجوی بسته پایداری ذخیرهشده را رد کنید.
--jsonbooleanمسیر نوشتهشده، اندازه، و مانیفست را بهصورت JSON چاپ کنید.
خروجی شامل یک مانیفست، یک خلاصه Markdown، شکل پیکربندی، جزئیات پیکربندی پاکسازیشده، خلاصههای گزارش پاکسازیشده، اسنپشاتهای وضعیت/سلامت Gateway پاکسازیشده، و جدیدترین بسته پایداری در صورت وجود است.
این خروجی برای اشتراکگذاری در نظر گرفته شده است. جزئیات عملیاتی کمککننده به اشکالزدایی را نگه میدارد، مانند فیلدهای ایمن گزارش OpenClaw، نامهای زیرسیستم، کدهای وضعیت، مدتزمانها، حالتهای پیکربندیشده، پورتها، شناسههای Plugin، شناسههای ارائهدهنده، تنظیمات غیرمحرمانه قابلیتها، و پیامهای گزارش عملیاتی ویرایششده. متن چت، بدنههای Webhook، خروجیهای ابزار، اعتبارنامهها، کوکیها، شناسههای حساب/پیام، متن پرامپت/دستورالعمل، نام میزبانها، و مقادیر محرمانه را حذف یا ویرایش میکند. وقتی یک پیام به سبک LogTape شبیه متن payload کاربر/چت/ابزار باشد، خروجی فقط این را نگه میدارد که یک پیام حذف شده است، همراه با تعداد بایتهای آن.
gateway status
gateway status سرویس Gateway (launchd/systemd/schtasks) را بههمراه یک پروب اختیاری از قابلیت اتصال/احراز هویت نشان میدهد.
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanاز probe اتصال صرفنظر کنید (نمای فقط سرویس).
--deepbooleanسرویسهای سطح سیستم را هم اسکن کنید.
--require-rpcbooleanprobe اتصال پیشفرض را به یک probe خواندن ارتقا دهید و وقتی آن probe خواندن شکست خورد با کد غیرصفر خارج شوید. نمیتوان آن را با --no-probe ترکیب کرد.
معناشناسی وضعیت
gateway statusحتی وقتی پیکربندی محلی CLI وجود ندارد یا نامعتبر است، برای عیبیابی در دسترس میماند.gateway statusپیشفرض وضعیت سرویس، اتصال WebSocket، و قابلیت احراز هویتِ قابل مشاهده در زمان handshake را اثبات میکند. عملیات خواندن/نوشتن/مدیریت را اثبات نمیکند.- probeهای عیبیابی برای احراز هویت دستگاه در بار نخست غیرتغییردهنده هستند: وقتی توکن دستگاه کششدهای وجود داشته باشد از همان استفاده میکنند، اما فقط برای بررسی وضعیت، هویت دستگاه CLI جدید یا رکورد pairing دستگاه فقطخواندنی ایجاد نمیکنند.
gateway statusدر صورت امکان SecretRefهای احراز هویت پیکربندیشده را برای احراز هویت probe resolve میکند.- اگر یک SecretRef احراز هویت لازم در این مسیر فرمان resolve نشود،
gateway status --jsonهنگام شکست اتصال/احراز هویت probe مقدارrpc.authWarningرا گزارش میکند؛--token/--passwordرا صریحا پاس دهید یا ابتدا منبع secret را resolve کنید. - اگر probe موفق شود، هشدارهای auth-ref resolveنشده برای جلوگیری از مثبتهای کاذب سرکوب میشوند.
- وقتی یک سرویس در حال گوشدادن کافی نیست و لازم دارید فراخوانیهای RPC با محدوده خواندن هم سالم باشند، در اسکریپتها و اتوماسیون از
--require-rpcاستفاده کنید. --deepیک اسکن best-effort برای نصبهای اضافی launchd/systemd/schtasks اضافه میکند. وقتی چند سرویس شبیه Gateway شناسایی شوند، خروجی انسانی راهنمای پاکسازی چاپ میکند و هشدار میدهد که بیشتر راهاندازیها باید برای هر ماشین یک Gateway اجرا کنند.--deepهمچنین وقتی فرایند سرویس برای restart توسط supervisor خارجی بهصورت تمیز خارج شده باشد، handoff اخیر restart ناظر Gateway را گزارش میکند.--deepاعتبارسنجی پیکربندی را در حالت آگاه از Plugin اجرا میکند (pluginValidation: "full") و هشدارهای manifest مربوط به Pluginهای پیکربندیشده را نمایش میدهد (برای مثال metadata پیکربندی channel جاافتاده) تا smoke checkهای نصب و بهروزرسانی آنها را بگیرند.gateway statusپیشفرض مسیر سریع فقطخواندنی را حفظ میکند که اعتبارسنجی Plugin را رد میکند.- خروجی انسانی مسیر resolveشده لاگ فایل را بههمراه snapshot مسیرها/اعتبار پیکربندی CLI در برابر سرویس شامل میشود تا به عیبیابی drift در profile یا state-dir کمک کند.
بررسیهای auth-drift در Linux systemd
- در نصبهای Linux systemd، بررسیهای drift احراز هویت هر دو مقدار
Environment=وEnvironmentFile=را از unit میخوانند (شامل%h، مسیرهای quoted، چند فایل، و فایلهای اختیاری-). - بررسیهای drift، SecretRefهای
gateway.auth.tokenرا با env زمان اجرای ادغامشده resolve میکنند (ابتدا env فرمان سرویس، سپس fallback به env فرایند). - اگر احراز هویت توکنی عملا فعال نباشد (
gateway.auth.modeصریح برابرpassword/none/trusted-proxy، یا mode تنظیم نشده باشد در وضعیتی که password میتواند برنده شود و هیچ token candidate نمیتواند برنده شود)، بررسیهای token-drift از resolve کردن توکن پیکربندی صرفنظر میکنند.
gateway probe
gateway probe فرمان «debug everything» است. همیشه این موارد را probe میکند:
- remote gateway پیکربندیشده شما (اگر تنظیم شده باشد)، و
- localhost (loopback) حتی اگر remote پیکربندی شده باشد.
اگر --url را پاس دهید، آن هدف صریح پیش از هر دو اضافه میشود. خروجی انسانی هدفها را اینطور برچسب میزند:
URL (explicit)Remote (configured)یاRemote (configured, inactive)Local loopback
openclaw gateway probeopenclaw gateway probe --jsonتفسیر
Reachable: yesیعنی دستکم یک هدف اتصال WebSocket را پذیرفت.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyگزارش میدهد که probe چه چیزی را درباره احراز هویت توانسته اثبات کند. این از دسترسیپذیری جداست.Read probe: okیعنی فراخوانیهای RPC جزئیات با محدوده خواندن (health/status/system-presence/config.get) هم موفق شدند.Read probe: limited - missing scope: operator.readیعنی اتصال موفق شد اما RPC با محدوده خواندن محدود است. این بهعنوان دسترسیپذیری degraded گزارش میشود، نه شکست کامل.Read probe: failedپس ازConnect: okیعنی Gateway اتصال WebSocket را پذیرفت، اما عیبیابیهای خواندن بعدی timeout شدند یا شکست خوردند. این هم دسترسیپذیری degraded است، نه Gateway غیرقابل دسترسی.- مانند
gateway status، probe از احراز هویت دستگاه کششده موجود استفاده مجدد میکند اما هویت دستگاه بار نخست یا state مربوط به pairing ایجاد نمیکند. - کد خروج فقط وقتی غیرصفر است که هیچ هدف probeشدهای قابل دسترسی نباشد.
خروجی JSON
سطح بالا:
ok: دستکم یک هدف قابل دسترسی است.degraded: دستکم یک هدف اتصال را پذیرفته اما عیبیابی کامل RPC جزئیات را تکمیل نکرده است.capability: بهترین قابلیتی که بین هدفهای قابل دسترسی دیده شده است (read_only،write_capable،admin_capable،pairing_pending،connected_no_operator_scope، یاunknown).primaryTargetId: بهترین هدف برای در نظر گرفتن بهعنوان برنده فعال با این ترتیب: URL صریح، SSH tunnel، remote پیکربندیشده، سپس local loopback.warnings[]: رکوردهای هشدار best-effort باcode،message، وtargetIdsاختیاری.network: hintهای URL مربوط به local loopback/tailnet که از پیکربندی فعلی و networking میزبان بهدست آمدهاند.discovery.timeoutMsوdiscovery.count: بودجه/تعداد نتیجه واقعی discovery که برای این گذر probe استفاده شده است.
برای هر هدف (targets[].connect):
ok: دسترسیپذیری پس از connect + طبقهبندی degraded.rpcOk: موفقیت کامل RPC جزئیات.scopeLimited: RPC جزئیات بهدلیل نبود scope اپراتور شکست خورده است.
برای هر هدف (targets[].auth):
role: نقش احراز هویت گزارششده درhello-okوقتی موجود باشد.scopes: scopeهای اعطاشده گزارششده درhello-okوقتی موجود باشند.capability: طبقهبندی قابلیت احراز هویت نمایشدادهشده برای آن هدف.
کدهای هشدار رایج
ssh_tunnel_failed: راهاندازی SSH tunnel شکست خورد؛ فرمان به probeهای مستقیم fallback کرد.multiple_gateways: بیش از یک هدف قابل دسترسی بود؛ این غیرمعمول است مگر اینکه عمدا profileهای ایزوله اجرا کنید، مانند یک rescue bot.auth_secretref_unresolved: یک SecretRef احراز هویت پیکربندیشده برای یک هدف شکستخورده resolve نشد.probe_scope_limited: اتصال WebSocket موفق شد، اما probe خواندن بهدلیل نبودoperator.readمحدود شد.
Remote از طریق SSH (برابری با اپ Mac)
حالت «Remote over SSH» در اپ macOS از یک port-forward محلی استفاده میکند تا remote gateway (که ممکن است فقط به loopback bind شده باشد) در ws://127.0.0.1:<port> قابل دسترسی شود.
معادل CLI:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host یا user@host:port (پورت بهطور پیشفرض 22 است).
--ssh-autobooleanنخستین میزبان Gateway کشفشده را بهعنوان هدف SSH از endpoint کشف resolveشده انتخاب کنید (local. بهعلاوه دامنه wide-area پیکربندیشده، اگر وجود داشته باشد). hintهای فقط TXT نادیده گرفته میشوند.
پیکربندی (اختیاری، بهعنوان پیشفرض استفاده میشود):
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
کمککننده RPC سطح پایین.
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"sinceMs": 60000}'"--params"--url"--token"--password"--timeout--expect-finalbooleanعمدتا برای RPCهای سبک agent که پیش از payload نهایی، رویدادهای میانی را stream میکنند.
--jsonbooleanخروجی JSON قابل خواندن برای ماشین.
مدیریت سرویس Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallنصب با wrapper
وقتی سرویس managed باید از طریق یک executable دیگر شروع شود، مثلا یک shim مدیر secretها یا یک run-as helper، از --wrapper استفاده کنید. wrapper آرگومانهای عادی Gateway را دریافت میکند و مسئول است در نهایت openclaw یا Node را با همان آرگومانها exec کند.
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restartمیتوانید wrapper را از طریق محیط هم تنظیم کنید. gateway install اعتبارسنجی میکند که مسیر یک فایل executable باشد، wrapper را در ProgramArguments سرویس مینویسد، و OPENCLAW_WRAPPER را در محیط سرویس برای reinstallهای اجباری، بهروزرسانیها، و تعمیرهای doctor بعدی پایدار میکند.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorبرای حذف یک wrapper پایدارشده، هنگام reinstall مقدار OPENCLAW_WRAPPER را پاک کنید:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartگزینههای فرمان
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
رفتار چرخه عمر
- از
gateway restartبرای راهاندازی دوباره یک سرویس مدیریتشده استفاده کنید.gateway stopوgateway startرا بهعنوان جایگزین راهاندازی دوباره پشتسرهم اجرا نکنید. - در macOS،
gateway stopبهطور پیشفرض ازlaunchctl bootoutاستفاده میکند، که LaunchAgent را از جلسه بوت فعلی حذف میکند بدون اینکه غیرفعالسازی را پایدار کند — بازیابی خودکار KeepAlive برای خرابیهای آینده فعال میماند وgateway startبدون نیاز بهlaunchctl enableدستی، دوباره بهصورت تمیز فعال میشود. برای سرکوب پایدار KeepAlive و RunAtLoad، گزینه--disableرا بدهید تا gateway تاgateway startصریح بعدی دوباره اجرا نشود؛ وقتی توقف دستی باید پس از راهاندازیهای دوباره سیستم یا ریبوتها باقی بماند، از این استفاده کنید. gateway restart --safeاز Gateway در حال اجرا میخواهد کار فعال OpenClaw را پیشبررسی کند و راهاندازی دوباره را تا تخلیه تحویل پاسخ، اجراهای جاسازیشده، و اجرای وظیفهها به تعویق بیندازد.--safeرا نمیتوان با--forceیا--waitترکیب کرد.gateway restart --wait 30sبودجه تخلیه راهاندازی دوباره پیکربندیشده را برای همان راهاندازی دوباره بازنویسی میکند. عددهای بدون واحد برحسب میلیثانیه هستند؛ واحدهایی مانندs،m، وhپذیرفته میشوند.--wait 0بهصورت نامحدود منتظر میماند.gateway restart --safe --skip-deferralراهاندازی دوباره امنِ آگاه از OpenClaw را اجرا میکند اما gate تعویق را دور میزند تا Gateway حتی وقتی مسدودکنندهها گزارش شدهاند، راهاندازی دوباره را فوراً صادر کند. راه خروج اپراتور برای تعویقهای گیرکرده اجرای وظیفه؛ به--safeنیاز دارد.gateway restart --forceتخلیه کار فعال را رد میکند و فوراً راهاندازی دوباره انجام میدهد. وقتی اپراتور مسدودکنندههای وظیفه فهرستشده را از قبل بررسی کرده و اکنون میخواهد gateway برگردد، از آن استفاده کنید.- فرمانهای چرخه عمر برای اسکریپتنویسی
--jsonرا میپذیرند.
احراز هویت و SecretRefها هنگام نصب
- وقتی احراز هویت توکنی به یک توکن نیاز دارد و
gateway.auth.tokenبا SecretRef مدیریت میشود،gateway installاعتبارسنجی میکند که SecretRef قابل حل باشد، اما توکن حلشده را در فراداده محیط سرویس پایدار نمیکند. - اگر احراز هویت توکنی به یک توکن نیاز داشته باشد و SecretRef توکن پیکربندیشده حلنشده باشد، نصب بهجای پایدار کردن متن ساده جایگزین، بهصورت بسته شکست میخورد.
- برای احراز هویت گذرواژه در
gateway run،OPENCLAW_GATEWAY_PASSWORD،--password-file، یاgateway.auth.passwordپشتیبانیشده با SecretRef را به--passwordدرونخطی ترجیح دهید. - در حالت احراز هویت استنباطشده،
OPENCLAW_GATEWAY_PASSWORDفقط در shell الزامات توکن نصب را سست نمیکند؛ هنگام نصب یک سرویس مدیریتشده از پیکربندی بادوام (gateway.auth.passwordیا پیکربندیenv) استفاده کنید. - اگر هم
gateway.auth.tokenو همgateway.auth.passwordپیکربندی شده باشند وgateway.auth.modeتنظیم نشده باشد، نصب تا زمانی که mode صریحاً تنظیم شود مسدود میشود.
کشف Gatewayها (Bonjour)
gateway discover بهدنبال beaconهای Gateway (_openclaw-gw._tcp) اسکن میکند.
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): یک دامنه انتخاب کنید (مثال:
openclaw.internal.) و split DNS + یک سرور DNS راهاندازی کنید؛ Bonjour را ببینید.
فقط gatewayهایی که کشف Bonjour برایشان فعال است (پیشفرض)، beacon را تبلیغ میکنند.
رکوردهای کشف wide-area میتوانند این راهنماییهای TXT را شامل شوند:
role(راهنمای نقش gateway)transport(راهنمای transport، مثلاًgateway)gatewayPort(درگاه WebSocket، معمولاً18789)sshPort(فقط حالت کشف کامل؛ وقتی وجود ندارد، کلاینتها مقصدهای پیشفرض SSH را22قرار میدهند)tailnetDns(نام میزبان MagicDNS، وقتی در دسترس باشد)gatewayTls/gatewayTlsSha256(TLS فعال + اثرانگشت گواهی)cliPath(فقط حالت کشف کامل)
gateway discover
openclaw gateway discover"--timeout--jsonbooleanخروجی قابلخواندن برای ماشین (همچنین styling/spinner را غیرفعال میکند).
مثالها:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'