Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Odoo.py CLI

By
Hieu Lam
on 9/5/16, 6:18 AM 329 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. 


0
erpdodo
On 12/6/16, 11:12 AM

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.

0
Hieu Lam
On 9/6/16, 3:41 AM

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


Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 9/5/16, 6:18 AM
Seen: 329 times
Last updated: 12/6/16, 11:12 AM