Ubuntu 16.04环境下Odoo 11服务启动失败求助
嘿,作为Ubuntu新手碰到Odoo服务启动失败太正常了,别慌!咱们一步步来排查这个exit-code的问题,先把你看到的服务状态信息贴出来方便参考:
odoo.service - Odoo Open Source ERP and CRM
Loaded: loaded (/lib/systemd/system/odoo.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2018-03-29 15:...
下面是具体的排查和解决步骤:
第一步:查看Odoo的详细启动日志
系统返回的exit-code只是个模糊的失败提示,咱们得看具体错误日志才能精准定位问题。执行这条命令就能获取最近的Odoo服务日志:sudo journalctl -u odoo.service -e
日志里通常会明确告诉你失败原因——比如配置文件写错了、数据库连不上、权限不够或者端口被占了。第二步:手动测试Odoo启动,排查配置问题
很多时候systemd的日志不够直观,咱们直接用Odoo的运行用户手动启动试试,能得到更直接的错误输出。执行这条命令(记得替换成你实际的路径):sudo -u odoo /path/to/your/odoo-bin -c /path/to/odoo.conf
重点检查配置文件里这几项:db_user和db_password是否和PostgreSQL里的用户匹配,对应的用户有没有数据库访问权限addons_path是不是指向正确的插件目录,这个路径得存在,而且Odoo用户要有读写权限logfile指定的路径是否可写,别让Odoo连日志都写不了
第三步:检查依赖和系统服务状态
- 先确认PostgreSQL服务在运行:
sudo systemctl status postgresql,如果没启动就先启动它:sudo systemctl start postgresql,Odoo依赖数据库,数据库挂了肯定启动不了 - 要是你是源码安装的Odoo,再检查一遍Python依赖有没有装全:
cd /path/to/odoo-source && pip3 install -r requirements.txt,缺依赖也是常见的启动失败原因 - 核对Odoo运行用户(默认是
odoo)的权限:源码目录、配置文件、日志目录都得让这个用户能读写,不然会因为权限不足启动失败
- 先确认PostgreSQL服务在运行:
第四步:检查端口占用情况
Odoo默认用8069端口,看看是不是被其他程序占了:sudo lsof -i :8069
如果查到有别的进程在占用这个端口,要么修改Odoo配置文件里的xmlrpc_port换个端口,要么杀掉占用端口的进程再重新启动Odoo服务。
按照这些步骤排查下来,基本就能找到问题所在了,有具体的错误信息可以再针对性解决!
内容的提问来源于stack exchange,提问作者Hassan ALi

