OpenERP-Server & Web‑Client: Startskripte installieren und automatisieren

Installieren Sie die Init-Skripte für den OpenERP-Server und den Web-Client unter /etc/init.d, setzen Sie die richtigen Dateirechte, erstellen Sie das Log-Verzeichnis und aktivieren Sie Autostart mit update-rc.d. Testen Sie Start/Stop, prüfen Sie die Logs und ändern Sie das Super‑Admin‑Passwort sofort.
Worum es hier geht
In diesem Kapitel installieren und automatisieren wir die Start-/Stop-Skripte für den OpenERP-Server und den Web‑Client auf einem Ubuntu-Server. Ziel: Dienste als der richtige Benutzer betreiben, Logs beschreiben und beim Systemstart automatisch starten/stoppen.
Wichtige Begriffe in einer Zeile
- Init-Skript: Shell-Skript in /etc/init.d, das start/stop/restart für einen Dienst bereitstellt.
- PID-File: Datei mit der Prozess-ID eines laufenden Dienstes, meist /var/run/
.pid.
Schritt 7 — Boot-Skript für den Server installieren
Erstellen Sie ein Init-Skript in /etc/init.d mit folgendem Inhalt (Beispielskript). Dieses Skript startet und stoppt den Server und führt ihn als Benutzer openerp aus:
#!/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
Kopieren Sie den Inhalt in /etc/init.d/openerp-server, dann Rechte und Eigentümer setzen:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Wichtig: Prüfen Sie, dass die in CONFIGFILE angegebene Konfigurationsdatei (/etc/openerp-server.conf) existiert und lesbar ist.
Erstellen Sie außerdem das Verzeichnis für Logs und passen Sie Besitzrechte an, damit der openerp-Benutzer schreiben kann:
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
Hinweis: Das Log-Verzeichnis muss vor dem Dienststart vorhanden und beschreibbar sein.
Schritt 8 — Server testen
Starten Sie den Server manuell:
sudo /etc/init.d/openerp-server start
Prüfen Sie anschließend die Logdatei:
less /var/log/openerp/openerp-server.log
Wenn der Dienst nicht startet, stoppen Sie sich und beheben die Fehler (Konfigurationspfad, Berechtigungen, fehlende Abhängigkeiten). Weiterarbeiten ohne laufenden Server führt zu Inkonsistenzen.
Wenn Sie den GTK-Client starten und ihn auf den Server zeigen, sollten Sie folgendes sehen:
OpenERP – Erste Anmeldung
Das bedeutet, der Server akzeptiert Verbindungen, aber es ist noch keine Datenbank vorhanden.
Sichern Sie das Super‑Admin‑Passwort sofort (Standard: “admin”). Damit kann ein Benutzer Datenbanken anlegen, sichern, wiederherstellen und löschen. Im GTK‑Client: Datei -> Databases -> Administrator Password.
Wichtig: Das Super‑Admin‑Passwort wird im Klartext in /etc/openerp-server.conf geschrieben. Beschränken Sie den Zugriff auf diese Datei auf root und openerp.
Tipp: Beim Ändern des Super‑Admin‑Passworts überschreibt OpenERP offenbar die Konfigurationsdatei und entfernt Kommentare; daher Backup der Konfig vor dem Ändern anlegen.
Testen Sie den Stop:
sudo /etc/init.d/openerp-server stop
Prüfen Sie Log und Prozessliste, ob der Dienst wirklich beendet wurde.
Schritt 9 — Autostart des Servers aktivieren
Wenn Start/Stop funktionieren, aktivieren Sie den Autostart beim Booten:
sudo update-rc.d openerp-server defaults
Nach einem Reboot sollte OpenERP automatisch starten. Eine laufende Instanz erkennen Sie z.B. per:
ps aux | grep openerp
Beispielausgabe:
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
Schritt 10 — Web‑Client konfigurieren und automatisieren
Der Web‑Client ist ein separater Serverprozess, der OpenERP über HTTP (Standardport 8080) an Browser ausliefert. Die Installation und Automatisierung ist analog zu den Schritten für den Server (Konfiguration, Init‑Skript, Rechte, Tests, Autostart).
Beispiel: Standardkonfigurationsdatei (aus /opt/openerp/web/doc/openerp-web.cfg). Passen Sie insbesondere die Logpfade an, damit sie nach /var/log/openerp zeigen:
[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]
dblist.filter = 'NONE'
dbbutton.visible = True
company.url = ''
Kopieren Sie diese Datei nach /etc/openerp-web.conf und setzen Sie Eigentümer/Permission:
sudo chown openerp:root /etc/openerp-web.conf
sudo chmod 640 /etc/openerp-web.conf
Init-Skript für den Web-Client (analog zum Server):
#!/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
Speichern Sie das Skript als /etc/init.d/openerp-web, setzen Sie Rechte und Eigentümer:
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
Starten Sie den Web-Client:
sudo /etc/init.d/openerp-web start
Der Web-Client läuft standardmäßig auf Port 8080. Testen Sie per Browser: http://my-ip-or-domain:8080
Stoppen und aktivieren Sie den Autostart wie beim Server:
sudo /etc/init.d/openerp-web stop
sudo update-rc.d openerp-web defaults
Nach einem Reboot sollten beide Dienste automatisch starten.
Checklisten und kurze Hilfen
Systemadministrator-Checkliste
- Konfigurationsdateien vorhanden: /etc/openerp-server.conf und /etc/openerp-web.conf
- Log-Verzeichnis: /var/log/openerp vorhanden und beschreibbar für openerp
- Init-Skripte: /etc/init.d/openerp-server und /etc/init.d/openerp-web, ausführbar und root:eigentümer
- Dienste per update-rc.d aktiviert
- Super‑Admin‑Passwort geändert und Konfigurationsdatei gesichert
Entwickler-Quicktest
- ps aux | grep openerp zeigt laufende Prozesse
- Logs prüfen: less /var/log/openerp/openerp-server.log und openerp-web-error.log
- Web-Client erreichbar: http://
:8080
Operator-Playbook (kurz)
- Bei Startproblemen: journalctl oder /var/log/syslog prüfen
- Konfigurationsänderung → Backup erstellen, Dienst neu starten
- Rollback: alte config zurückkopieren, sudo /etc/init.d/openerp-server restart
Incident‑Runbook (Rollback / schnelle Reparatur)
- Problem: Server startet nicht.
- Prüfen: less /var/log/openerp/openerp-server.log → Fehlermeldung notieren.
- Prüfen: Besitzer/Rechte von /var/log/openerp und /etc/openerp-server.conf.
- Temporärer Fix: Dienst stoppen, alte konfigurierte .conf wiederherstellen, Dienst starten.
- Wenn Prozess hängt: kill
(vorsichtig), dann start. - Bei Datenbankfehlern: Datenbanksicherung zurückspielen (nur nach Analyse).
Sicherheits‑ und Betriebs‑Härtung (Kurz)
- Zugriff auf /etc/openerp-*.conf nur für root und openerp: chmod 640, chown openerp:root.
- Logs rotieren: systemd- oder logrotate‑Konfiguration für /var/log/openerp/* anlegen.
- Netzwerkzugriff: Web‑Client hinter Reverse‑Proxy (TLS) betreiben oder Firewall‑Regeln (ufw) setzen.
- Passwortschutz: Super‑Admin‑Passwort komplex wählen, Regelmäßiger Wechsel optional.
Wann diese Anleitung nicht passt (Gegenbeispiele)
- Sie verwenden systemd statt SysVinit: Verwenden Sie eine systemd‑Unit statt /etc/init.d Skripten.
- Containerisierte Deployments (Docker/Kubernetes): Startskripte in Containern sind nicht sinnvoll.
- Managed‑Hosting mit Spezialkonfigurationen: Hosten und Startmechanismen können abweichen.
Mini‑Methodik: Testfälle nach Installation
- TC1: Dienst startet manuell und schreibt Logeintrag innerhalb 30 Sekunden.
- TC2: Dienst stoppt sauber, kein Prozess mehr vorhanden.
- TC3: Autostart beim Reboot aktiviert, Dienste laufen nach Boot.
- TC4: Web‑Client erreichbar auf Port 8080 (HTTP 200 auf Loginseite).
Einzeilige Glossareinträge
- openerp: Systemuser, unter dem die OpenERP‑Prozesse laufen.
- update-rc.d: Debian/Ubuntu Tool zum Verwalten der SysVinit-Startlinks.
- start-stop-daemon: Utility zum kontrollierten Starten/Stoppen von Daemons.
Zusammenfassung
- Legen Sie Init-Skripte in /etc/init.d ab, setzen Sie Rechte und Besitzer.
- Erstellen Sie /var/log/openerp und geben Sie Schreibrechte an openerp.
- Testen Sie Start/Stop und aktivieren Sie Autostart mit update-rc.d.
- Ändern Sie sofort das Super‑Admin‑Passwort und schützen Sie die Konfigurationsdateien.
Wichtig: Wenn Sie systemd verwenden, erstellen Sie bevorzugt systemd-Units statt der hier gezeigten SysVinit‑Skripte.
Ähnliche Materialien

Instagram‑Analytics: Messen & Tracken

WhatsApp: Einmal ansehen Medien wiederherstellen
Icecast 2.3.3 auf CentOS 6.3 installieren

Google Call Widget in Website einbinden
