supervisor无法启动Odoo的解决办法
 

Supervisor (http://supervisord.org)是一个优秀的Linux下的进程监控,管理工具。它可以自动监控进程的状态,若进程意外退出,还可以自动重启。我们一般在生产环境中管理Odoo服务器进程。他的安装和配置也很简单。这里有一篇文章介绍supervisor管理Odoo进程 http://shine-it.net/index.php/topic,4250.msg11558.html

 

但是Odoo V8之后用supervisor启动会出现问题。Odoo无法正常启动,运行

     #supervisorctl

查询运行状态时会看到:FATAL      Exited too quickly (process log may have details) 错误

supervisor无法启动Odoo的解决办法
查看log会有这么一句错误:

supervisor无法启动Odoo的解决办法
错误的原因是:

Odoo在启动过程中需要检查一个data目录,其中用来保存Odoo用户的附件文档,Session数据,以及通过网络安装的模块。
它一般保存在启动Odoo的用户的HOME目录的.local目录下,如果这个data目录不存在就会自动创建。我们也可以在Odoo的启动命令参数中指定这个目录:--data-dir
当用supervisor来启动Odoo时,因为supervisorsd是由root用户启动的,所以它只继承了root的环境变量。这样当启动Odoo的时候,Odoo就会试图在/.local下创建data目录时就会遭遇‘Permission Denied' 权限错误,因为Odoo并不是root的启动的,该用户是没有在/上创建目录权限。

解决的办法是,在supervisor配置文件中设置环境变量,比如:

YourName一般是启动Odoo的用户

   environment=HOME="/home/YourName",USER="YourName"

设置好后,执行下面的命令,重新载入新的配置文件,即可正常启动Odoo了

   supervisorctl reload