macOS companion app

วงจรชีวิตของ Gateway บน macOS

โดยค่าเริ่มต้น แอป macOS จะจัดการ Gateway ผ่าน launchd และไม่ เริ่ม Gateway เป็นโปรเซสลูก ขั้นแรกแอปจะพยายามเชื่อมต่อกับ Gateway ที่ทำงานอยู่แล้วบนพอร์ตที่กำหนดค่าไว้ หากไม่สามารถเข้าถึงได้ แอปจะเปิดใช้บริการ launchd ผ่าน CLI openclaw ภายนอก (ไม่มี รันไทม์แบบฝังตัว) วิธีนี้ช่วยให้เริ่มทำงานอัตโนมัติเมื่อเข้าสู่ระบบและเริ่มใหม่เมื่อเกิดข้อขัดข้องได้อย่างน่าเชื่อถือ

ปัจจุบัน ไม่มีการใช้งาน โหมดโปรเซสลูก (ซึ่งแอปเริ่ม Gateway โดยตรง) หากคุณต้องการให้ทำงานเชื่อมโยงกับ UI อย่างใกล้ชิดยิ่งขึ้น ให้เรียกใช้ Gateway ด้วยตนเองใน เทอร์มินัล

ลักษณะการทำงานเริ่มต้น (launchd)

  • แอปติดตั้ง LaunchAgent สำหรับผู้ใช้แต่ละรายที่มีป้ายกำกับ ai.openclaw.gateway (หรือ ai.openclaw.<profile> เมื่อใช้ --profile/OPENCLAW_PROFILE)
  • เมื่อเปิดใช้โหมดเฉพาะที่ แอปจะตรวจสอบให้แน่ใจว่าโหลด LaunchAgent แล้ว และ เริ่ม Gateway หากจำเป็น
  • บันทึกจะถูกเขียนไปยังเส้นทางบันทึกของ launchd gateway (ดูได้ในการตั้งค่าการแก้ไขข้อบกพร่อง)

คำสั่งที่ใช้บ่อย:

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