Como iniciar y detener Odoo

21 de junio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Si hay algo que un administrador de Odoo debe saber de memoria es como iniciar y detener Odoo. Y como darse cuenta que se está ejecutando sin problemas, si no saber hacer eso... va a estar en problemas tarde o temprano.

En este post vamos a hablar sobre como se detiene e inicia Odoo en Linux (no Windows por motivos que luego aclararemos). No vamos a hablar en este post sobre como arrancar o detener máquinas virtuales ni tampoco Docker. Tambien vamos a ver como se configura Odoo para que se inicie en Linux de manera inasistida. Esto asume que Odoo Community versión 16 fue instalado desde el código fuente (si no saben hacerlo, aprendanlo... no es tan complicado y los videos que lo explican estan en colores).

Lo primero que hay que hacer es conocer que usuario se creó para instalar odoo (por lo general es el usuario odoo, pero a veces tenemos odoo15 u odoo16 por ejemplo). Si no lo conoce, preguntele a la persona que realizó dicha tarea. Si esta persona desconoce que lo hizo (porque siguió un script a ciegas) puede ver el owner del archivo odoo-bin.

Paso siguiente, es conocer donde Odoo fue instalado. Se supone que uno sabe donde instalo Odoo, pero no siempre es así. Es por eso que hacemos un find de odoo-bin o del directorio addons (o de cualquier módulo, por ejemplo account)


sudo -u odoo find / -type f -name odoo-bin

o:

sudo -u odoo find / -type d -name addons


Lo que da un resultado como el siguiente:


También uno debe conocer que archivo de configuración se utiliza para arrancar Odoo (es poco común arrancar Odoo sin archivo de configuración, y a los entusiastas que lo hacen les deseo buena suerte). Como hacer para encontrar el archivo de configuración, generalmente conocido como odoo.conf u odoo-server.conf? De vuelta, hay que preguntarle al instalador de Odoo, pero en caso que esa persona se haya olvidado, puede hacer un grep de la frase addons_path (es una opción siempre presente en el archivo odoo.conf, sin dicha opción Odoo no puede iniciarse) de la siguiente manera en el directorio /etc (donde por convención se instala Odoo)


cd /etc
grep -r addons_path

Se lo puede realizar desde el directorio raíz pero es poco práctico. El caso es que brinda una salida como la siguiente


De esta manera ya sabemos: donde esta instalado Odoo, donde estan instalados sus módulos y ademas donde se encuentra el archivo de configuración. Seguidamente procedemos a cambiar el directorio de trabajo al directorio de Odoo y ejecutamos el comando para iniciar Odoo


cd /opt/odoo16/odoo
sudo -Hu odoo16 ./odoo-bin -c /etc/odoo.conf

Lo cual arranca Odoo, pero no muestra ningún mensaje de error. Lo que generalmente se hace es, se inicia Odoo y al mismo tiempo en otra ventana de terminal se monitorea el archivo de log. El mismo se determina en el archivo de configuración con la opción logfile del archivo de configuración

logfile = /var/log/odoo/odoo-server.log

El cual se puede monitorear de forma continua desde la linea de comandos

sudo -u odoo tail -f /var/log/odoo/odoo-server.log

Lo cual brinda una salida como la siguiente


Lo mejor es ejecutar el comando de la siguiente manera

sudo -u odoo ./odoo-bin -c /etc/odoo.conf && sudo tail -f /var/log/odoo/odoo-server.log

Lo cual no solo inicia Odoo, sino instantaneamente en la misma ventana muestra los contenidos del log.

Como se detiene Odoo? Solo se tiene que hacer Control + C en la ventana donde se arrancó. Eso detiene Odoo de una forma segura (si bien es seguro, por favor no lo haga mientras los usuarios estan trabajando). Otra opción es matar el proceso. Primero se averiguar cual es el process id de Odoo y luego se procede a matarlo

sudo ps -ef|grep odoo-bin
sudo kill -KILL <process id>


Por último. Por lo general Odoo es instalado como un servicio que se va a ejecutar en el background. La idea es, cada vez que se inicia el servidor se inicia Odoo (no queremos ejecutar manualmente los pasos anteriores). Por eso debe preguntarle al instalador de Odoo si creo el servicio. Es posible que haya creado un script que puede ser iniciado como un servicio mediante systemd. En ese caso, puede ver en el directorio /etc/systemd/system los diferentes servicios instalados:


ls -lah /etc/systemd/system

Lo que muesta algo como...


En este ejemplo podemos ver que hay un servicio llamado odoo15, el cual si queremos ver como funciona podemos hacer un cat del mismo


Como vemos en la opción ExecStart tenemos el comando para iniciar Odoo. Como hacemos para iniciar Odoo teniendo este servicio?


sudo systemctl start odoo16

Para detenerlo


sudo systemctl stop odoo16

Y mi favorito, para reiniciarlo al tiempo que monitoreamos el log de Odoo...


sudo systemctl restart odoo16 && sudo tail -f /var/log/odoo/odoo-server.log
Gustavo Orrillo 21 de junio de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario