기술 가이드

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
저자
편집

유사한 자료

WhatsApp 보기한번 사진·동영상 복구(2025)
안드로이드

WhatsApp 보기한번 사진·동영상 복구(2025)

CentOS 6.3에 Icecast 2.3.3 스트리밍 서버 설치
서버 가이드

CentOS 6.3에 Icecast 2.3.3 스트리밍 서버 설치

웹사이트에 Google Call Widget 추가하는 방법
가이드

웹사이트에 Google Call Widget 추가하는 방법

인스타그램 좋아요한 게시물 바로 확인하는 방법
소셜미디어

인스타그램 좋아요한 게시물 바로 확인하는 방법

Windows 바탕화면에 시스템 정보 추가하기
윈도우 가이드

Windows 바탕화면에 시스템 정보 추가하기

OpenERP 자동 시작 및 웹 클라이언트 설정
서버 관리

OpenERP 자동 시작 및 웹 클라이언트 설정