기술 가이드

OpenERP 서버와 웹 클라이언트 자동 시작 스크립트 설치 및 테스트

5 min read 서버 관리 업데이트됨 02 Oct 2025
OpenERP 자동 시작 및 웹 클라이언트 설정
OpenERP 자동 시작 및 웹 클라이언트 설정

개요

이 문서는 OpenERP 서버와 웹 클라이언트를 시스템 부팅 시 자동으로 시작/중지하도록 init.d 스크립트를 설치하고 테스트하는 과정을 다룹니다. 핵심 작업은 다음과 같습니다.

  • 부팅 스크립트(openerp-server, openerp-web) 설치
  • 스크립트 권한 및 소유권 설정
  • 로그 디렉터리 생성 및 권한 설정
  • 서비스 수동 시작/중지 테스트
  • update-rc.d로 자동 시작 등록
  • 웹 클라이언트 설정 및 테스트

중요: 모든 명령은 루트 권한이 필요합니다. sudo를 사용하거나 루트로 실행하세요.

사전 준비

  • OpenERP가 /opt/openerp 경로에 설치되어 있어야 합니다.
  • 설정 파일: /etc/openerp-server.conf 및 /etc/openerp-web.conf
  • openerp 사용자 계정이 존재하고 해당 소유권을 설정할 수 있어야 합니다.

7단계. 부팅 스크립트 설치

다음 쉘 스크립트는 OpenERP 서버를 시작하고 중지하기 위한 init.d 스크립트 예시입니다. 이 파일의 내용을 /etc/init.d/openerp-server로 저장하세요.

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Enterprise Resource Management software
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

설치 후 파일 권한을 설정합니다:

sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server

로그 디렉터리 생성 및 소유권 설정

서버 설정 파일에 지정된 로그 파일을 위해 디렉터리를 생성하고 openerp 사용자가 쓸 수 있게 합니다.

sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp

중요: 로그 디렉터리의 권한이 잘못되어 있으면 서버가 시작되지 않습니다.

8단계. 서버 테스트

서버를 수동으로 시작하여 로그와 프로세스를 확인합니다.

sudo /etc/init.d/openerp-server start

로그 파일을 확인합니다:

less /var/log/openerp/openerp-server.log

서버가 시작되지 않으면 이전 단계(권한, 경로, 설정 파일)를 다시 점검하세요. 서버가 정상 동작하면 GTK 클라이언트를 실행하여 새 서버에 접속하면 다음과 유사한 첫 로그인 화면을 볼 수 있습니다.

OpenERP 첫 로그인 화면 (GTK 클라이언트)

이 메시지는 서버가 연결을 받고 있지만 아직 데이터베이스가 설정되어 있지 않음을 의미합니다.

권장: 슈퍼 관리자 비밀번호를 변경하세요(기본값: “admin”). GTK 클라이언트에서 파일 메뉴 → Databases → Administrator Password로 변경할 수 있습니다. 이 비밀번호는 /etc/openerp-server.conf에 평문으로 저장되므로 파일 권한으로 접근을 제한해야 합니다.

슈퍼 관리자 비밀번호를 저장하면 OpenERP가 설정 파일을 재작성하여 주석을 제거하고 항목 순서를 바꿀 수 있으니, 변경 후 파일을 검토하세요.

정지 테스트:

sudo /etc/init.d/openerp-server stop

로그와 프로세스 목록으로 정상 종료 여부를 확인하세요.

9단계. OpenERP 자동 시작 등록

모든 테스트가 통과하면 시스템 부팅 시 자동으로 시작되도록 등록합니다.

sudo update-rc.d openerp-server defaults

서버를 재부팅하여 자동 시작 동작을 확인할 수 있습니다. 실행 중인 프로세스는 다음과 유사하게 보입니다:

ps aux | grep openerp

예시:

openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf

로그 파일이나 GTK 클라이언트로 추가 확인을 수행하세요.

10단계. 웹 클라이언트 설정 및 자동화

웹 클라이언트는 브라우저를 통해 OpenERP를 제공하는 별도의 서버 애플리케이션입니다. 서버와 동일한 호스트에 설치하면 앞서의 단계 6~9를 반복하면 됩니다.

웹 클라이언트 기본 설정 예시(/opt/openerp/web/doc/openerp-web.cfg 내용):

[global]
server.environment = "development"

# Some server parameters that you may want to tweak
server.socket_host = "0.0.0.0"
server.socket_port = 8080

# Sets the number of threads the server uses
server.thread_pool = 10

tools.sessions.on = True
tools.sessions.persistent = False

# Simple code profiling
server.profile_on = False
server.profile_dir = "profile"

# if this is part of a larger site, you can set the path
# to the TurboGears instance here
#server.webpath = ""

# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
#tools.proxy.on = True

# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
#tools.proxy.base = 'http://mydomain.com'

# logging
#log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp/openerp-web-error.log"
log.access_level = "INFO"
log.error_level = "INFO"

# Set to false to disable CSRF checks
tools.csrf.on = True

# replace builtin traceback tools by cgitb
tools.log_tracebacks.on: False
tools.cgitb.on: True
# a default install can probably avoid logging those via cgitb as they're
# available in the server log
tools.cgitb.ignore=(
    openobject.errors.Concurrency,
    openobject.errors.TinyException)

# OpenERP Server
openerp.server.host = 'localhost'
openerp.server.port = '8070'
openerp.server.protocol = 'socket'
openerp.server.timeout = 450

# Web client settings
[openerp-web]
# filter dblists based on url pattern?
# NONE: No Filter
# EXACT: Exact Hostname
# UNDERSCORE: Hostname_
# BOTH: Exact Hostname or Hostname_

dblist.filter = 'NONE'

# whether to show Databases button on Login screen or not
dbbutton.visible = True

# will be applied on company logo
company.url = ''

이 파일을 /etc/openerp-web.conf로 복사하고 다음 권한을 설정하세요:

sudo chown openerp:root /etc/openerp-web.conf
sudo chmod 640 /etc/openerp-web.conf

웹 클라이언트용 부팅 스크립트 예시를 /etc/init.d/openerp-web로 저장한 뒤 권한을 설정합니다:

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-web
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    OpenERP Web - the Web Client of the OpenERP
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
DAEMON="/opt/openerp/web/openerp-web.py"
NAME="openerp-web"
DESC="openerp-web"

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-web.conf).
CONFIGFILE="/etc/openerp-web.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

권한 설정:

sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web

웹 서버 시작 테스트:

sudo /etc/init.d/openerp-web start

로그, 프로세스 목록, 브라우저로 접속(http://내-아이피-or-도메인:8080)하여 동작을 확인하세요.

정상 종료 테스트:

sudo /etc/init.d/openerp-web stop

자동 시작 등록:

sudo update-rc.d openerp-web defaults

이제 서버를 재부팅해 두 서비스가 자동으로 시작되는지 확인하세요.

운영 시나리오 및 문제 해결

빠른 점검 체크리스트

  • /etc/openerp-server.conf 경로와 내용 확인
  • /etc/openerp-web.conf 경로와 내용 확인
  • /opt/openerp 경로의 바이너리 실행 권한 확인
  • /var/log/openerp 디렉터리 존재 및 소유권(openerp:root) 확인
  • /var/run/*.pid 파일 생성 여부 확인
  • 서비스가 포트(서버: 8069 기본, 웹: 8080 등)를 바인딩하는지 확인

흔한 오류 및 해결법

  • 서버가 시작되지 않음: DAEMON 경로 또는 CONFIGFILE 경로가 정확한지 확인하세요.
  • 로그에 권한 관련 오류: 로그 디렉터리와 설정 파일의 소유자 및 권한을 확인하세요.
  • PID 파일이 남아 프로세스가 재시작되지 않음: PID 파일을 삭제하고 재시작하세요.
  • 포트 충돌: netstat 또는 ss로 포트 사용 여부를 확인하고 충돌하는 프로세스를 종료하세요.

보안 권장사항

  • /etc/openerp-server.conf 및 /etc/openerp-web.conf 파일 권한을 640으로 유지하고 소유자를 openerp:root로 설정하세요.
  • 슈퍼 관리자 비밀번호를 기본값에서 반드시 변경하세요.
  • 외부에 직접 노출되는 경우 방화벽으로 포트(8069/8080 등)를 제한하세요.
  • 프로덕션에서는 웹 클라이언트를 Apache/Nginx 프록시 뒤에 배치하고 HTTPS를 적용하세요.

역할별 체크리스트

관리자:

  • 슈퍼 관리자 비밀번호 변경
  • 데이터베이스 백업 정책 수립

운영팀(시스템 엔지니어):

  • 서비스 자동 시작 등록
  • 로그 로테이션 설정(/etc/logrotate.d에 항목 추가 권장)
  • 모니터링(프로세스/포트/로그 에러 감시)

개발팀:

  • 설정 파일의 환경별 분리(dev/stage/prod)
  • 로그 레벨과 프로파일링 설정 검토

수용 기준

  • 서비스가 시스템 재부팅 후 자동으로 시작되어야 한다.
  • /var/log/openerp에 로그가 정상 출력되어야 한다.
  • 포트(웹:8080, 서버 기본 포트)는 정상 바인딩되어 접속 가능해야 한다.
  • 슈퍼 관리자 비밀번호가 기본값이 아닌 안전한 값으로 변경되어 있어야 한다.

간단 복구/롤백 절차

  1. 문제가 생기면 먼저 서비스 중지:
sudo /etc/init.d/openerp-server stop
sudo /etc/init.d/openerp-web stop
  1. 최근 구성 변경 사항을 되돌리고 설정 파일의 권한을 재설정하세요.
  2. 로그를 확인하여 원인 파악 후 서비스 재시작.

명령 치트시트

  • 서비스 시작: sudo /etc/init.d/openerp-server start
  • 서비스 중지: sudo /etc/init.d/openerp-server stop
  • 자동등록: sudo update-rc.d openerp-server defaults
  • 로그 보기: less /var/log/openerp/openerp-server.log
  • 프로세스 확인: ps aux | grep openerp

의사결정 흐름도

flowchart TD
  A[서비스 시작 실패] --> B{PID 파일 존재?}
  B -- 예 --> C[PID 파일 삭제 후 재시작]
  B -- 아니오 --> D{로그에 권한 오류?}
  D -- 예 --> E[로그/설정 파일 권한 점검]
  D -- 아니오 --> F{포트 충돌?}
  F -- 예 --> G[충돌 프로세스 종료 또는 포트 변경]
  F -- 아니오 --> H[설정 경로 확인 및 재배포]

용어 한 줄 정의

  • PID 파일: 실행 중인 프로세스의 프로세스 ID를 기록한 파일
  • init.d 스크립트: SysV init 방식에서 서비스 시작/중지를 관리하는 스크립트

마무리 요약

  • 부팅 스크립트를 /etc/init.d에 설치하고 실행 권한을 부여하세요.
  • 로그 디렉터리와 설정 파일의 소유권/권한을 적절히 설정하세요.
  • 수동으로 시작/중지 테스트를 충분히 한 뒤 update-rc.d로 자동 등록하세요.
  • 보안(비밀번호, 파일 권한, 방화벽)과 모니터링을 설정하세요.

요약: 이 문서를 따라 하면 OpenERP 서버와 웹 클라이언트를 시스템 부팅 과정에 자동으로 통합할 수 있습니다. 운영 환경에서는 구성 관리, 로그 로테이션, 모니터링을 추가로 적용하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기