Pages

Saturday 22 August 2015

Autostart Odoo/OpenERP server at System reboots (Ubuntu)

Hello Friends,

Here I am going to show you few easy steps to create a script that will automatically starts your odoo/openerp server when Ubuntu starts (reboots).


Step 1: First of all you need to setup your odoo server by installing odoo packages as well as postgresql database configuration Odoo Installation guide.

Step 2: Once you have done with odoo installation,

            Locate openerp-server.conf file from odoo server files.

                Default path : /opt/openerp/server/install/openerp-server.conf

                Manual Search from terminal:
           locate openerp-server.conf

Step 3Open file and set following basic parameters for default configuration:

 [options]   
    ; This is the password that allows database operations:   
    ; admin_passwd = admin   
    db_host = False   
    db_port = False   
    db_user = odoo   
    db_password = False   
    dbfilter = .*  
    xmlrpc_port = 8069  
    addons_path = /usr/lib/python2.7/dist-packages/openerp/addons  
                 ; (Custom addons path can be added and separated by commas (,))  
      
 
Step 4: Check your odoo server is running from above configured openerp-server.conf file.

       Terminal:

           ~/odoo-8.0$ ./odoo.py -c /opt/odoo/server/install/openerp-server.conf

Step 5Create new script file named odoo-server.sh and place this in path /etc/init.d/

odoo-server.sh

 #!/bin/sh  
 ### BEGIN INIT INFO  
 # Provides:       odoo-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:  Complete Business Application software  
 # Description:     Odoo is a complete suite of business tools.  
 ### END INIT INFO  
 PATH=/bin:/sbin:/usr/bin  
 DAEMON=/opt/odoo/openerp-server  
 NAME=odoo-server  
 DESC=odoo-server  
 # Specify the user name (Default: odoo).  
 USER=odoo  
 # Specify an alternate config file (Default: /etc/odoo-server.conf).  
 CONFIGFILE="/opt/openerp/server/install/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  



Step 6: to make it executable, we need to give some permission.

      sudo chmod 755 /etc/init.d/odoo-server

Step 7: Testing the script:

        1. To start odoo server:

            sudo /etc/init.d/odoo-server start

            Once the service is start, check it in browser by typing IP_or_Domain_name:8069

        2. To stop odoo server:

            sudo /etc/init.d/odoo-server stop

Step 8: at last we need to hit one more final command to make odoo-server script activate automatically.

            sudo update-rc.d odoo-server defaults

Step 9: All is setup now. Just reboot the system and open terminal to check whether the odoo service is start automatic.
             ps aux | grep odoo

you will see something like this,
 odoo 15786 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /usr/lib/python2.7/dist-packages/openerp/addons -c /opt/odoo/server/install/openerp-server.conf  

It says that you odoo server is running and you can also check this out from web browser.



Have fun :)

Thanks & Regards,
Ishwar Malvi

3 comments:

  1. how to place the odoo-server.sh in /etc/init.d. I have used sudo cp -R /path/to/files/you/want/copied/ /copy/to/this/path/ this command in terminal to move the file. But it shows "Not a directory". What should I do to move the .sh file to /etc/init.d My .sh file is in desktop. I also tried to save the file directly to the /etc/init.d but it shows permission denied. Please help me to save the .sh file in the /etc/init.d Thank you

    ReplyDelete
    Replies
    1. You should make permission to access them by using commmand : sudo chmod 777 -R /etc/init.d

      Thanks.

      Delete
  2. I followed your instruction.I created a odoo-server file and edited daemon and config file path.When I try to make the file executable it executed fine.But when it try to run sudo /etc/init.d/odoo-server start

    I get following error
    $ sudo /etc/init.d/odoo-server start
    Starting odoo-server: start-stop-daemon: --start needs --exec or --startas
    Try 'start-stop-daemon --help' for more information.
    /etc/init.d/odoo-server: 37: /etc/init.d/odoo-server: --chuid: not found
    /etc/init.d/odoo-server: 38: /etc/init.d/odoo-server: --exec: not found
    odoo-server.

    ReplyDelete