Ir al contenido
Menú
Se marcó esta pregunta
3 Respuestas
5734 Vistas

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
Descartar
Mejor respuesta

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

Avatar
Descartar
Mejor respuesta

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
Descartar
Autor Mejor respuesta

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
Descartar