Гид по технологиям

Установка автозапуска и настройка OpenERP

4 min read Инструкции Обновлено 02 Oct 2025
Автозапуск и настройка OpenERP на сервере
Автозапуск и настройка OpenERP на сервере

Шаг 7. Установка скрипта автозапуска сервера

На финальном этапе нужно установить скрипт, который будет автоматически запускать и останавливать сервер, а также запускать приложение от имени нужного пользователя. Ниже приведён скрипт, который используется в примере — поместите его в файл /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: экран первого входа

OpenERP — экран первого входа

Это означает, что сервер принимает подключения, но у вас ещё нет базы данных. Настройка OpenERP (создание БД, пользователей, модулей) выходит за рамки этой инструкции по установке сервера.

Рекомендую сразу сменить супер‑админский пароль (по умолчанию “admin”). Супер‑админ имеет права на создание, резервное копирование, восстановление и удаление баз данных. В GTK‑клиенте это Делается через меню Файл → Базы данных → Пароль администратора.

Примечание: пароль супер‑админа хранится в открытом виде в /etc/openerp-server.conf, поэтому важно ограничить доступ к этому файлу владельцем root и пользователем openerp.

Иногда при сохранении нового супер‑пароля OpenERP полностью перезаписывает конфигурационный файл: он удаляет комментарии и переставляет параметры в произвольном порядке. Это может выглядеть странно, но обычно не влияет на работоспособность.

Проверьте корректную остановку сервера:

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

Проверьте лог и список процессов, чтобы убедиться, что процесс завершён.

Шаг 9. Автоматизация запуска сервера при старте системы

Если всё работает, добавьте скрипт в системный автозапуск:

sudo update-rc.d openerp-server defaults

Можно перезагрузить сервер и убедиться, что OpenERP запущен после загрузки. Для быстрой проверки списка процессов выполните:

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). Оставьте содержимое как есть — для нашей локальной установки изменён только путь логирования на /var/log/openerp/.

[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

Запустите веб‑сервер и проверьте логи и список процессов. По умолчанию веб‑клиент слушает порт 8080, поэтому URL будет примерно таким: http://my-ip-or-domain:8080

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

Проверьте остановку:

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

Добавьте веб‑скрипт в автозапуск:

sudo update-rc.d openerp-web defaults

Теперь после перезагрузки сервера OpenERP и веб‑клиент должны автоматически запускаться и корректно останавливаться.


Критерии приёмки

  • Скрипты /etc/init.d/openerp-server и /etc/init.d/openerp-web присутствуют, имеют права 755 и владельца root.
  • Каталог логов /var/log/openerp существует и принадлежит openerp:root.
  • Команды start/stop/restart для обоих сервисов выполняются без ошибок.
  • После reboot оба сервиса автоматически запускаются и отвечают на портах (сервер — порт из конфигурации, веб‑клиент — 8080).

Чек‑лист администратора (role‑based)

  • (Системный админ) Проверить владельцев и права на /etc/openerp-.conf и /etc/init.d/.
  • (Сетевой админ) Убедиться, что порт 8080 открыт/прокинута переадресация при необходимости.
  • (DBA) Проверить доступность PostgreSQL и права пользователя OpenERP на БД.
  • (Безопасник) Сменить супер‑админский пароль и хранить backup конфигураций в защищённом хранилище.

Рекомендации по безопасности

  • Ограничьте доступ к файлам конфигурации (/etc/openerp-server.conf и /etc/openerp-web.conf) правами 640 и владельцем openerp:root.
  • Смените супер‑админский пароль сразу после установки.
  • Если веб‑интерфейс доступен из интернета, оградите его через обратный прокси (nginx/apache) с TLS и, при возможности, дополнительной аутентификацией.
  • Регулярно архивируйте /var/log/openerp и делайте бэкапы баз данных.

Типичные ошибки и способы исправления

  • Сервер не запускается — проверьте путь до DAEMON и CONFIGFILE, а также права доступа.
  • Пустой или отсутствующий лог — проверьте владельца каталога /var/log/openerp.
  • Порт 8080 занят — найдите процесс, который использует порт (sudo netstat -tulpn | grep 8080) или смените порт в конфиге веб‑клиента.

План отката (коротко)

  1. Остановите сервисы: sudo /etc/init.d/openerp-web stop && sudo /etc/init.d/openerp-server stop.
  2. Удалите или переименуйте скрипты из /etc/init.d/ (например, добавьте суффикс .bak).
  3. Восстановите предыдущие конфигурационные файлы из бэкапа.
  4. Перезапустите систему и проверьте состояние служб.

Терминология (в одну строку)

  • init-скрипт — shell‑скрипт в /etc/init.d, управляющий запуском/остановкой сервиса при загрузке системы.

Резюме

  • Установите init-скрипты в /etc/init.d, задайте права root: и 755.
  • Создайте каталог логов и назначьте openerp:root.
  • Протестируйте запуск/остановку и добавьте в автозапуск через update-rc.d.
  • Обязательно смените супер‑админский пароль и защитите конфигурационные файлы.

Важно: перед массовым развертыванием прогоните эту процедуру на тестовой машине и подготовьте бэкапы конфигураций и баз данных.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

OpenVPN + LinOTP: настройка двухфакторной аутентификации
Безопасность

OpenVPN + LinOTP: настройка двухфакторной аутентификации

Аналитика Instagram: как измерять успех
Социальные сети

Аналитика Instagram: как измерять успех

Восстановить фото и видео WhatsApp View Once
Мобильные приложения

Восстановить фото и видео WhatsApp View Once

Установка Icecast 2.3.3 на CentOS 6.3
Linux

Установка Icecast 2.3.3 на CentOS 6.3

Как добавить Google Call Widget на сайт
Интеграции

Как добавить Google Call Widget на сайт

Как посмотреть понравившиеся посты в Instagram
Социальные сети

Как посмотреть понравившиеся посты в Instagram