Установка автозапуска и настройка 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 (создание БД, пользователей, модулей) выходит за рамки этой инструкции по установке сервера.
Рекомендую сразу сменить супер‑админский пароль (по умолчанию “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) или смените порт в конфиге веб‑клиента.
План отката (коротко)
- Остановите сервисы: sudo /etc/init.d/openerp-web stop && sudo /etc/init.d/openerp-server stop.
- Удалите или переименуйте скрипты из /etc/init.d/ (например, добавьте суффикс .bak).
- Восстановите предыдущие конфигурационные файлы из бэкапа.
- Перезапустите систему и проверьте состояние служб.
Терминология (в одну строку)
- init-скрипт — shell‑скрипт в /etc/init.d, управляющий запуском/остановкой сервиса при загрузке системы.
Резюме
- Установите init-скрипты в /etc/init.d, задайте права root: и 755.
- Создайте каталог логов и назначьте openerp:root.
- Протестируйте запуск/остановку и добавьте в автозапуск через update-rc.d.
- Обязательно смените супер‑админский пароль и защитите конфигурационные файлы.
Важно: перед массовым развертыванием прогоните эту процедуру на тестовой машине и подготовьте бэкапы конфигураций и баз данных.
Похожие материалы
OpenVPN + LinOTP: настройка двухфакторной аутентификации

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

Восстановить фото и видео WhatsApp View Once
Установка Icecast 2.3.3 на CentOS 6.3

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