2017-07-19 99 views
3

我已经在ubuntu 16.04上安装了odoo 10。现在我需要为odoo创建一个服务。我曾尝试下面的步骤,但得到一个错误:运行odoo作为服务

Starting odoo-server: start-stop-daemon: --start needs --exec or --startas 
Try 'start-stop-daemon --help' for more information. 
/etc/init.d/odoo-server: 39: /etc/init.d/odoo-server: --chuid: not found 
odoo-server. 

odoo服务器

#!/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: Odoo ERP 
# Description: Odoo is a complete ERP business solution. 
### END INIT INFO 
PATH=/bin:/sbin:/usr/bin 
# Change the Odoo source files location according your needs. 
DAEMON=/opt/odoo/odoo-10.0/odoo-bin 
# Use the name convention of your choice 
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="/etc/odoo.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}" 
exit 1 
;; 
esac 
exit 0 

我执行此命令:

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

chown ubuntu: /etc/init.d/openerp-server 

用户:odoo

配置文件:/etc/odoo.conf

Odoo运行过程中出现像这样:

sudo su - odoo -s /bin/bash ~/odoo-10.0/odoo-bin

但我不能作为服务开始。

回答

2

我认为你在文件中缺少一件事。

请仔细看看你的缺失部分,粘贴init脚本就像下面的文件一样。

#!/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: Odoo ERP 
# Description: Odoo is a complete ERP business solution. 
### END INIT INFO 
PATH=/bin:/sbin:/usr/bin 
# Change the Odoo source files location according your needs. 
DAEMON=/opt/odoo/odoo-10.0/odoo-bin 
# Use the name convention of your choice 
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="/etc/odoo.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}" 
exit 1 
;; 

esac 
exit 0 

我觉得你错过了一些重要的部分“\”,这是对于unix命令,当一个命令多于一行时。

在$ {PIDFILE}后面的两行内容中缺少“\”,这些行如下所示。

1) "Inside Start case" : 
start-stop-daemon --start --quiet --pidfile ${PIDFILE} 
--chuid ${USER} --background --make-pidfile \ 
--exec ${DAEMON} -- ${DAEMON_OPTS} 

2) "Inside Restart Case" : 
start-stop-daemon --start --quiet --pidfile ${PIDFILE} 
--chuid ${USER} --background --make-pidfile \ 
--exec ${DAEMON} -- ${DAEMON_OPTS} 

这就是为什么你得到如下错误:

Starting odoo-server: start-stop-daemon: --start needs --exec or --startas 
Try 'start-stop-daemon --help' for more information. 
/etc/init.d/odoo-server: 39: /etc/init.d/odoo-server: --chuid: not found 
odoo-server. 

我希望你得到的东西,并且可以使用服务成功运行Odoo。