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
3: Open 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 5: Create
new script file named odoo-server.sh
and place this in path /etc/init.d/
odoo-server.sh
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,
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
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
ReplyDeleteYou should make permission to access them by using commmand : sudo chmod 777 -R /etc/init.d
DeleteThanks.
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
ReplyDeleteI 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.