튜토리얼 카테고리 Skills 소개
ZH EN JA KO
설치 및 배포

systemd로 OpenClaw 백그라운드 서비스 관리하기

· 9 분 소요

systemd 관리가 필요한 이유

Linux 서버에 OpenClaw을 설치한 후, 터미널에서 직접 openclaw start를 실행하면 작동하지만 몇 가지 문제가 있습니다: SSH 연결을 종료하면 프로세스가 종료되고, 서버 재부팅 후 수동으로 시작해야 하며, 크래시 후 자동 복구가 불가능합니다. systemd는 현대 Linux 시스템의 표준 서비스 관리자로, 이러한 문제를 완벽하게 해결할 수 있습니다.

이 글에서는 systemd를 통해 OpenClaw을 신뢰할 수 있는 백그라운드 서비스로 설정하여, 부팅 시 자동 시작, 크래시 자동 재시작 및 로그 통합 관리를 구현하는 방법을 자세히 소개합니다.

사전 요구사항

  • OpenClaw 설치 완료 (npm install -g openclaw@latest 또는 공식 설치 스크립트를 통해)
  • openclaw onboard 초기 설정 완료
  • systemd를 사용하는 Linux 시스템 (Ubuntu 16.04+, Debian 9+, CentOS 7+, Fedora 등)

자동 설치 방식

OpenClaw은 데몬 프로세스를 자동으로 설정하는 명령을 제공합니다. Linux 시스템에서는 자동으로 systemd 서비스를 생성합니다:

openclaw onboard --install-daemon

초기 가이드 시 이미 이 명령을 실행했다면, systemd 서비스가 이미 설정되어 있을 수 있습니다. 다음 명령으로 확인할 수 있습니다:

systemctl status openclaw

서비스가 이미 존재하고 정상적으로 실행 중이라면, 수동 설정 부분을 건너뛰고 뒤의 관리 및 최적화 섹션을 바로 읽을 수 있습니다.

수동으로 systemd 서비스 생성

자동 설치가 작동하지 않거나 설정을 커스터마이징하고 싶다면, 수동으로 systemd 서비스 파일을 생성할 수 있습니다.

OpenClaw 경로 확인

먼저 OpenClaw 실행 파일의 위치를 확인합니다:

which openclaw

보통 결과는 /usr/bin/openclaw 또는 /usr/local/bin/openclaw입니다. 이 경로를 기록해 두세요. 나중에 사용됩니다.

동시에 OpenClaw을 실행하는 사용자 이름과 홈 디렉토리를 확인합니다:

echo $USER
echo $HOME

서비스 파일 생성

원하는 편집기로 systemd 서비스 파일을 생성합니다:

sudo nano /etc/systemd/system/openclaw.service

다음 내용을 작성합니다:

[Unit]
Description=OpenClaw AI Agent Gateway
Documentation=https://openclaw.ai/docs
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=사용자이름
Group=사용자이름
WorkingDirectory=/home/사용자이름
ExecStart=/usr/local/bin/openclaw start
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60

# 환경 변수
Environment=NODE_ENV=production
Environment=HOME=/home/사용자이름

# 보안 강화
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/사용자이름/.openclaw

# 리소스 제한
LimitNOFILE=65536
MemoryMax=1G

# 로그
StandardOutput=journal
StandardError=journal
SyslogIdentifier=openclaw

[Install]
WantedBy=multi-user.target

위의 "사용자이름"을 실제 Linux 사용자 이름으로 바꾸세요. OpenClaw 설치 경로가 다르다면, ExecStart의 경로도 그에 맞게 수정해야 합니다.

설정 설명

이 서비스 파일에서 몇 가지 핵심 설정을 설명합니다:

  • Restart=alwaysRestartSec=5: 서비스 크래시 후 5초마다 자동 재시작하여 고가용성을 보장합니다
  • StartLimitBurst=5StartLimitIntervalSec=60: 60초 내 최대 5번 재시작하여 무한 재시작 루프를 방지합니다
  • ProtectSystem=strictProtectHome=read-only: 보안 강화 옵션으로, 서비스의 파일 시스템 쓰기 권한을 제한합니다
  • ReadWritePaths: OpenClaw 설정 디렉토리 ~/.openclaw에 대한 쓰기를 명시적으로 허용합니다
  • LimitNOFILE=65536: 파일 디스크립터 제한을 높여 높은 동시 접속 시나리오에 대응합니다

서비스 활성화 및 관리

서비스 로드 및 시작

sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

enable 명령은 서비스를 부팅 시 자동 시작으로 설정하고, start 명령은 서비스를 즉시 시작합니다.

자주 사용하는 관리 명령

서비스 상태 확인:

sudo systemctl status openclaw

서비스 중지:

sudo systemctl stop openclaw

서비스 재시작:

sudo systemctl restart openclaw

설정 리로드 (서비스 중단 없이):

sudo systemctl reload openclaw

부팅 시 자동 시작 취소:

sudo systemctl disable openclaw

로그 관리

systemd는 journald를 통해 서비스 로그를 통합 관리합니다. 다음은 자주 사용하는 로그 조회 명령입니다.

실시간 로그 추적:

journalctl -u openclaw -f

최근 100줄 로그 조회:

journalctl -u openclaw -n 100

오늘의 로그 조회:

journalctl -u openclaw --since today

특정 시간 범위의 로그 조회:

journalctl -u openclaw --since "2026-03-14 08:00:00" --until "2026-03-14 18:00:00"

우선순위별 필터링 (오류만 보기):

journalctl -u openclaw -p err

진단 실행

서비스 시작 후, OpenClaw의 내장 진단 도구를 실행하는 것을 권장합니다:

openclaw doctor

이 명령은 Node.js 버전이 22+ 요구사항을 충족하는지, 설정 파일 ~/.openclaw/openclaw.json이 완전한지, 각 채팅 플랫폼 연결이 정상인지, 네트워크 접근성 등 핵심 항목을 확인합니다.

설정 파일 업데이트

~/.openclaw/openclaw.json 설정 파일을 수정한 후, 서비스를 재시작하여 변경사항을 적용해야 합니다:

sudo systemctl restart openclaw

다중 인스턴스 실행

같은 서버에서 여러 OpenClaw 인스턴스를 실행해야 하는 경우(예: 프로덕션과 테스트 환경), systemd의 템플릿 인스턴스 기능을 사용할 수 있습니다:

sudo cp /etc/systemd/system/openclaw.service /etc/systemd/system/[email protected]

템플릿 파일을 수정하여 고정 경로를 인스턴스 매개변수화된 경로로 바꾼 후, 각각 다른 인스턴스를 시작합니다:

sudo systemctl start openclaw@production
sudo systemctl start openclaw@staging

문제 해결

서비스가 시작되지 않는 경우 다음 단계로 문제를 해결합니다:

  1. 로그 확인: journalctl -u openclaw -n 50 --no-pager
  2. 수동 실행으로 정상 작동 확인: openclaw start
  3. 권한 확인: 서비스 사용자가 ~/.openclaw/ 디렉토리를 읽고 쓸 수 있는지 확인
  4. 포트 점유 확인: ss -tlnp | grep 3000
  5. Node.js 버전 확인: node --version (반드시 22+)

정리

systemd로 OpenClaw 서비스를 관리하면 엔터프라이즈급 서비스 신뢰성을 얻을 수 있습니다. 부팅 시 자동 시작, 크래시 자동 복구, 통합 로그 관리를 제공합니다. 보안 강화 옵션과 리소스 제한을 함께 사용하면, 이 설정은 프로덕션 환경에서의 장기적이고 안정적인 운영에 적합합니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다