This question has been flagged
4 Replies
21121 Views

I installed odoo and try manual start openerp-server. All ok. My next step it's try to add odoo to auto start. For this I use this script:

!/bin/sh


### BEGIN INIT INFO

# Provides:             openerp-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:    Enterprise Resource Management software

# Description:          Open ERP is a complete ERP and CRM software.

### END INIT INFO


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

DAEMON=/opt/odoo/openerp-server

NAME=openerp-live

DESC="OpenERP server process for live bases"


LFILE=/var/log/openerp/daemon.log


# Specify the user name (Default: openerp).

USER=odoo


# Specify an alternate config file (Default: /etc/openerp-server.conf).

CONFIGFILE="/etc/odoo-live.conf"


# pidfile

PIDFILE=/var/run/$NAME.pid

touch $PIDFILE

chown odoo:root $PIDFILE

chmod 755 $PIDFILE


# 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

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}."

echo "${NAME}."

;;

*)

N=/etc/init.d/${NAME}

echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2

exit 1

;;

esac

exit 0

When I start script, pid file created but service don't work. Also if I try to stop it, I see msg:

Stopping openerp-server: start-stop-daemon: warning: failed to kill 1204: No such process openerp-server.

I don't understand what I do wrong. And my old friend google can't help me. this don't help

Maybe anybody have solve for this problem?


=====================================update====================================


Really David Bertha is right. But, after changing user to other and change permission to all needed files, i have a new problem. My script can't create a pid file.

On google i saw info about init.d scripts:

when script start on boot (from update-rc.d), he start by root user. And we can add to script something like this:

if [ ! -d /var/run/openerp ]; then

mkdir /var/run/openerp

chown -R odoo:odoo /var/run/openerp

chmod -R 755 /var/run/openerp

fi

BUT it's don't work. After server boot I check /var/run and don't find openerp folder.

=====================================update====================================

Also I try create file, but after reboot i don't saw it too.

If I use something like:

sudo su root

sh /etc/init.d/odoo-live

all ok, pid creating, permissions changing and service work. but if I reboot the server nothing happening.

Also I update my script upper



Avatar
Discard
Author

Really David Bertha is right. But, after changing user to other and change permission to all needed files, i have a new problem. My script can't create a pid file. On google i saw info about init.d scripts: when script start on boot (from update-rc.d), he start by root user. And we can add to script something like this: if [ ! -d /var/run/openerp ]; then mkdir /var/run/openerp chown -R odoo:odoo /var/run/openerp chmod -R 755 /var/run/openerp fi BUT it's don't work. After server boot I check /var/run and don't find openerp folder.

Best Answer

I think odoo refuse to start with user root. You should check the logfile

Avatar
Discard
Best Answer

This piece will update it auto for you. (I am using it for odoo v8) Make sure you delete the old one first.

sudo rm -f /etc/init.d/you-odoo-script. Then copy and paste this in sh chmod +x and run it.


#!/bin/bash

sudo sh -c “wget \”http://www.theopensourcerer.com/wp-content/uploads/2014/09/odoo-server\” -O /etc/init.d/odoo-server” sudo chmod +x /etc/init.d/odoo-server

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

sudo chown root: /etc/init.d/odoo-server

sudo update-rc.d odoo-server defaults

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

# END now type ps aux | grep odoo


Enjoy :)

ps: Not sure if it is just a copy and paste problem but you do notice that your script starts with !/bin/sh and not  #!/bin/sh

Avatar
Discard
Best Answer

Create a /var/run/openerp.pid file, set Read and write permission!

Avatar
Discard