맥미니 OpenClaw 멀티봇 운영 완벽 가이드: 포트 충돌 없이 봇 2개 이상 돌리는 법 🖥️

맥미니로 OpenClaw를 운영하다 보면 이런 생각이 들 때가 있죠. “개인용 봇 하나, 업무용 봇 하나 따로 돌리고 싶은데…” 🤔 그런데 막상 두 번째 봇을 실행하면?

“Address already in use” 에러와 함께 터집니다.

오늘은 맥미니에서 OpenClaw 멀티봇을 안정적으로 운영하는 방법을 실전 경험을 바탕으로 정리해드릴게요!

🎯 왜 OpenClaw 멀티봇이 필요할까요?

한 대의 맥미니에서 여러 봇을 운영해야 하는 대표적인 상황들입니다:

  • 🏠 개인 비서: 일정 관리, 메모, 알림
  • 💼 업무용: 고객 응대, 문서 작성
  • 🧪 테스트용: 새 기능 실험, 프롬프트 튜닝
  • 👨‍👩‍👧‍👦 가족용: 가족 구성원별 개인 비서

이런 경우, 무작정 “한 번 더 실행”하면 100% 포트 충돌이 발생합니다. 핵심은 ‘분리’입니다!

⚠️ 멀티봇 실패의 80%는 이것 때문

OpenClaw 멀티봇 운영에서 가장 흔한 실수는 딱 두 가지입니다:

1. 설정 디렉토리 미분리

OpenClaw는 기본적으로 ~/.openclaw/에 모든 설정을 저장합니다. 두 번째 봇도 같은 경로를 사용하면?

  • ❌ 설정값 덮어쓰기
  • ❌ 세션 충돌
  • ❌ 예측 불가능한 동작

2. Gateway 포트 미변경

OpenClaw Gateway의 기본 포트는 18789입니다. 두 번째 봇도 같은 포트를 사용하려 하면?

Error: listen EADDRINUSE: address already in use :::18789

바로 이 에러가 뜹니다! 😱

📌 방법 1: OPENCLAW_HOME 환경변수로 프로필 분리 (권장)

가장 깔끔하고 안정적인 방법입니다. OPENCLAW_HOME 환경변수로 각 봇의 ‘집’을 완전히 분리합니다.

Step 1: 두 번째 봇 설정 폴더 생성

# 두 번째 봇용 환경 설정
export OPENCLAW_HOME=~/.openclaw-bot2
openclaw configure

이 명령으로 ~/.openclaw-bot2/ 디렉토리에 완전히 독립된 설정이 생성됩니다.

Step 2: Gateway 포트 변경 (필수!)

openclaw configure 진행 중 Gateway Port 설정이 나오면:

  • 첫 번째 봇: 18789 (기본값)
  • 두 번째 봇: 18790
  • 세 번째 봇: 18791

이렇게 순차적으로 다른 포트를 지정하세요.

Step 3: 두 번째 봇 실행

# 환경변수 지정 후 실행
export OPENCLAW_HOME=~/.openclaw-bot2
openclaw gateway

분리되는 항목 정리

항목 기본 봇 두 번째 봇
설정 파일 ~/.openclaw/openclaw.json ~/.openclaw-bot2/openclaw.json
워크스페이스 ~/.openclaw/workspace/ ~/.openclaw-bot2/workspace/
세션 데이터 ~/.openclaw/sessions/ ~/.openclaw-bot2/sessions/
로그 ~/.openclaw/logs/ ~/.openclaw-bot2/logs/
Gateway 포트 18789 18790

📌 방법 2: –profile 옵션 사용 (더 간편)

OpenClaw 2026년 버전부터는 –profile 옵션으로 더 쉽게 분리할 수 있습니다.

# work 프로필로 설정
openclaw --profile work configure

# work 프로필로 실행
openclaw --profile work gateway start

이 방법은 자동으로 ~/.openclaw-work/ 디렉토리를 생성하고 관리합니다.

🔄 재부팅 후 자동 시작 설정 (launchd)

맥미니가 재부팅되어도 봇들이 자동으로 시작되게 하려면 launchd를 사용합니다.

기본 봇 서비스 등록

# 기본 봇 데몬 설치
openclaw gateway install

두 번째 봇 서비스 수동 등록

두 번째 봇은 별도의 plist 파일을 만들어야 합니다:

# ~/Library/LaunchAgents/com.openclaw.bot2.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.openclaw.bot2</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/openclaw</string>
        <string>gateway</string>
        <string>run</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
        <key>OPENCLAW_HOME</key>
        <string>/Users/yourname/.openclaw-bot2</string>
    </dict>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

서비스 등록 및 시작

# 서비스 로드
launchctl load ~/Library/LaunchAgents/com.openclaw.bot2.plist

# 서비스 시작
launchctl start com.openclaw.bot2

# 상태 확인
launchctl list | grep openclaw

🐧 Linux 서버에서는? (systemd)

우분투나 다른 Linux 배포판에서는 systemd를 사용합니다.

# /etc/systemd/user/openclaw-bot2.service
[Unit]
Description=OpenClaw Bot2 Gateway
After=network.target

[Service]
Type=simple
Environment="OPENCLAW_HOME=/home/user/.openclaw-bot2"
ExecStart=/usr/bin/openclaw gateway run
Restart=always
RestartSec=10

[Install]
WantedBy=default.target
# 서비스 활성화 및 시작
systemctl --user daemon-reload
systemctl --user enable openclaw-bot2
systemctl --user start openclaw-bot2

❌ 절대 하면 안 되는 것: 토큰 공유

가장 중요한 경고입니다! 🚨

하나의 텔레그램 봇 토큰을 여러 인스턴스에서 동시에 사용하지 마세요!

같은 토큰을 두 곳에서 돌리면:

  • 메시지 경쟁: 누가 메시지를 가져갈지 서로 싸움
  • 응답 누락: 일부 메시지가 씹힘
  • 랜덤 에러: 로그는 정상인데 동작이 이상함

각 봇마다 별도의 텔레그램 봇 토큰을 생성하세요. @BotFather에서 새 봇을 만들면 됩니다!

💡 채널 확장 vs 멀티봇: 뭐가 다른가요?

많은 분들이 헷갈리는 부분입니다.

채널 확장 (멀티봇 아님)

“텔레그램에서도 답하고, 디스코드에서도 답하게 하고 싶어요”

👉 이건 하나의 봇에 여러 채널을 연결하는 것입니다.

# 기존 봇에 채널 추가
openclaw configure
# → Channels 메뉴에서 Discord 활성화

이 경우:

  • ✅ 포트 분리 불필요
  • ✅ 설정 디렉토리 하나로 충분
  • ✅ 하나의 AI 에이전트가 여러 채널에서 응답

멀티봇 (진짜 분리)

“완전히 다른 용도의 독립된 봇을 원해요”

👉 이건 별개의 봇을 여러 개 운영하는 것입니다.

이 경우:

  • ✅ OPENCLAW_HOME 분리 필수
  • ✅ Gateway 포트 분리 필수
  • ✅ 각 봇이 독립된 워크스페이스, 세션, 설정 보유

🖥️ 맥미니 멀티봇 운영 실전 팁

1. 리소스 모니터링

맥미니 M4 기준, OpenClaw 인스턴스당 약 500MB~1GB 메모리를 사용합니다. 봇 개수에 따라:

  • 8GB RAM: 3~4개 봇 가능
  • 16GB RAM: 6~8개 봇 가능
  • 24GB RAM: 10개 이상 봇 가능

2. 로그 분리 확인

# 기본 봇 로그
tail -f ~/.openclaw/logs/gateway.log

# 두 번째 봇 로그
tail -f ~/.openclaw-bot2/logs/gateway.log

3. 상태 확인 명령

# 기본 봇 상태
openclaw gateway status

# 두 번째 봇 상태
OPENCLAW_HOME=~/.openclaw-bot2 openclaw gateway status

4. 포트 사용 현황 확인

# 사용 중인 OpenClaw 포트 확인
lsof -i :18789
lsof -i :18790

🔧 문제 해결 가이드

“Address already in use” 에러

  1. 이미 실행 중인 Gateway 확인: lsof -i :18789
  2. 해당 프로세스 종료: kill -9 [PID]
  3. 포트 변경 후 재시작

“어제는 됐는데 오늘은 안 됨”

  1. 환경변수 OPENCLAW_HOME 확인
  2. 올바른 프로필로 실행했는지 확인
  3. openclaw doctor로 상태 점검

두 봇의 응답이 섞임

  1. 텔레그램 토큰이 다른지 확인
  2. 설정 디렉토리가 분리되었는지 확인
  3. 포트가 다른지 확인

📋 멀티봇 설정 체크리스트

항목 첫 번째 봇 두 번째 봇 확인
OPENCLAW_HOME ~/.openclaw ~/.openclaw-bot2
Gateway 포트 18789 18790
텔레그램 토큰 bot1_token bot2_token (다른 것!)
launchd/systemd 설정 완료 별도 plist 생성
워크스페이스 분리됨 분리됨

💡 마무리: 멀티봇 운영의 핵심

OpenClaw 멀티봇 운영은 어렵지 않습니다. 핵심만 기억하세요:

  1. 프로필 분리: OPENCLAW_HOME 또는 –profile 사용
  2. 포트 분리: 각 봇마다 다른 Gateway 포트
  3. 토큰 분리: 봇마다 별도 텔레그램 토큰
  4. 자동 시작: launchd(macOS) 또는 systemd(Linux) 설정

이 네 가지만 지키면 맥미니 한 대에서 5개 이상의 AI 봇을 안정적으로 운영할 수 있습니다! 🎉

여러분의 멀티봇 운영 경험은 어떠신가요? 궁금한 점이 있다면 댓글로 남겨주세요! 💬


📌 이 글이 도움이 되셨다면 공유 부탁드려요! AI 에이전트 시대, 효율적인 봇 운영이 생산성의 핵심입니다.