Skip to Content
Menu
This question has been flagged
3 Replies
5333 Views

HI everyone, 

I'm new to odoo. Recently, I need to automate our build process for odoo. And this is some approach that I intend to try 

1. Use cli odoo.py as background process but the problem is that everytime I run odoo.py, it create a new process ?

2. I could create a daemon thread as describe in this tutorial  https://www.linode.com/docs/websites/cms/install-odoo-9-erp-on-ubuntu-14-04. So that the CI server can stop/start odoo server easily. 

I still struggling with #2 but cannot run the server successfully yet. Does anyone have experience automate the odoo build before and share the experience with me ?

Thanks a lot in advance. 


Avatar
Discard
Best Answer

I recommend you to visit Yenthe's Blog (www.odoo.yenthevg.com), where he got some clean tutorials on Odoo installation.

Avatar
Discard
Best Answer

Hi Hieu Lam,

you can create odoo script start in ubuntu by:

create file bash:

#!/bin/bash

### BEGIN INIT INFO

# Provides: odoo

# Required-Start: $remote_fs $syslog

# Required-Stop: $remote_fs $syslog

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Start odoo daemon at boot time# Description: Enable service provided by daemon.

# X-Interactive: true

### END INIT INFO

## more info: http://wiki.debian.org/LSBInitScripts

. /lib/lsb/init-functions

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

DAEMON=/usr/bin/odoo

NAME=odoo

DESC=odoo

CONFIG=/etc/odoo/odoo.conf

LOGFILE=/var/log/odoo/odoo-server.log

PIDFILE=/var/run/${NAME}.pid

USER=odoo

export LOGNAME=$USER

test -x $DAEMON || exit 0set -e

function _start() {

    start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER:$USER --background --make-pidfile --exec $DAEMON -- --config $CONFIG --logfile $LOGFILE

}

function _stop() {

    start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --retry 3

     rm -f $PIDFILE}

function _status() {

    start-stop-daemon --status --quiet --pidfile $PIDFILE

    return $?

}

case "$1" in

        start)

                echo -n "Starting $DESC: "

                _start echo "ok"

                ;;

        stop)

                echo -n "Stopping $DESC: "

                _stop echo "ok"

                ;;

        restart|force-reload)

                echo -n "Restarting $DESC: "

                _stop sleep 1

                _start echo "ok"

                ;;

        status)

                echo -n "Status of $DESC: "

                _status && echo "running" || echo "stopped"

                ;;

        *)    

                N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status}" >&2

                exit 1 ;;

esac

exit 0


This file in source odoo: /odoo/debian/init

put file in /etc/init.d/<file name>

after run: /etc/init.d/<file name> start


hope to help you.

Avatar
Discard
Author Best Answer

Hi all, 

After lots of time on #2 approach, I still cannot make odoo running in daemon thread. So I switch back to #1 and this is the final script that work for me. If you are in the same situation, hope that help. 


#!bin/bash

sudo kill -9 /var/run/odoo-server.pid

/opt/odoo/odoo-server/odoo.py -d <db_name> -r <db_user> -w <db_password> --addons-path <addons path> -u <modules to update upon startup> > /var/log/odoo/odoo-server.log 2>&1 & 

echo $! > /var/run/odoo-server.pid


Avatar
Discard