---
read_when:
    - การผสานแอป Mac เข้ากับวงจรชีวิตของ Gateway
summary: วงจรชีวิตของ Gateway บน macOS (launchd)
title: วงจรชีวิตของ Gateway บน macOS
x-i18n:
    generated_at: "2026-05-06T09:22:18Z"
    model: gpt-5.5
    provider: openai
    source_hash: 543327024f8c635d74ac656923e8e745dc47ca9df0aba5ec51215bd186db2b35
    source_path: platforms/mac/child-process.md
    workflow: 16
---

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

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

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

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

คำสั่งทั่วไป:

```bash
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 ชี้ไปยังไบนารี relay ที่ไม่ได้ลงนาม สคริปต์จะ:

- เขียน `~/.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

- เริ่มทำงานอัตโนมัติเมื่อเข้าสู่ระบบ
- มีความหมายเชิง restart/KeepAlive ในตัว
- บันทึกและการกำกับดูแลที่คาดเดาได้

หากต้องการโหมดกระบวนการลูกจริงอีกครั้งในอนาคต ควรจัดทำเอกสารให้เป็น
โหมดเฉพาะสำหรับนักพัฒนาแยกต่างหากและชัดเจน

## ที่เกี่ยวข้อง

- [แอป macOS](/th/platforms/macos)
- [คู่มือปฏิบัติการ Gateway](/th/gateway)
