Start OpenERP Server on Startup

Given we have more than 1 openerp server to start, here is how to add openerp startup scripts

Steps:

  • Place openerp startup script, i.e., openerp-test-7069 in /etc/init.d
  • Change permission to 777 sudo chmod 777 openerp-test-7069
  • Create symbolic link in all 6 rc*.d folders as following,
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc0.d/K22openerp-test-7069
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc1.d/K22openerp-test-7069
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc2.d/S22openerp-test-7069
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc3.d/S22openerp-test-7069
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc4.d/S22openerp-test-7069
sudo ln -s /etc/init.d/openerp-test-7069 /etc/rc5.d/K22openerp-test-7069

Note:

  • S## means to start at this run level. K## means not to start at this run level.
  • ## is the sequence number.

 

Example of start-up file.

#!/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=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/openerp_mh/server/openerp-server
NAME=openerp-server-mh
DESC=openerp-server-mh
CONFIG=/opt/openerp_mh/mh_addons/openerp-server.conf
LOGFILE=/var/log/openerp/openerp-server-mh.log
USER=openerp
DBFILTER=MH*

test -x ${DAEMON} || exit 0

set -e

do_start () {
    echo -n "Starting ${DESC}: "
    start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid --chuid ${USER} --background --make-pidfile --exec ${DAEMON} -- --config=${CONFIG} --db-filter=${DBFILTER} --logfile=${LOGFILE}
    echo "${NAME}."
}

do_stop () {
    echo -n "Stopping ${DESC}: "
    start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid --oknodo
    echo "${NAME}."
}

case "${1}" in
    start)
        do_start
        ;;

    stop)
        do_stop
        ;;

    restart|force-reload)
        echo -n "Restarting ${DESC}: "
        do_stop
        sleep 1
        do_start
        ;;

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

exit 0