Entrar a un directorio dentro del crontab

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Me pasa lo siguiente:


Instalé un software de replicación de base de datos Oracle bien güeno fijaté, DbVisit. Este tiene un componente Servidor Web Observer que va monitoreando las bases de datos y se instala en un linux huacho cualquiera.

El inicio del software es de la siguiente manera:

# cd /usr/dbvisit/dbvserver/
# ./dbvserver -d start

y tate, el servicio levanta.

Así que para automatizar la subida lo metí al cronetab

@reboot /usr/dbvisit/dbvserver/dbvserver -d start


y efectivamente el servicio inicia (porque lo compruebo con un ps -fea) pero no levanta bien.

Al final cachureando me doy cuenta que así como está armado requiere entrar al directorio /usr/dbvisit/dbvserver/.


¿Existe alguna forma sencilla dentro del crontab pa decirle "ya, entra primero al directorio y después ejecuta la aplicación"?


Hay un instructivo para convertir esto en servicio con systemctl pero me da una paja enorme, prefiero hacer algo con crontab.
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Estuve googleando y hay una alternativa

@reboot cd /usr/dbvisit/dbvserver/ ; /usr/dbvisit/dbvserver/dbvserver -d start


pero la huea igual no funciona :'(
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Y probaste metiendo lo mismo a un script? Valida que tenga permiso de ejecucion de todas maneras
Si, se ejecuta.

Al final voy a tener que armar el script para meterlo al systemctl nomás tal como dice el fabricante. Maldición, obligado a trabajar.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Update.

Armé el script systemctl (me demoré nada jajajaja) pero la huea igual no levantaba. El proceso cargaba bien y toda la huea pero aún así el sitio no levantaba, ocurría exactamente lo mismo que con esa línea pajera que había puesto en el crontab: cuando iniciaba el servicio a mano levantaba el sitio pero si se iniciaba en el boteo no "¿y si le pongo un delay a la huea?"

[Service]
Type=simple
RemainAfterExit=yes
ExecStartPre=/bin/sleep 15
User=oracle
Group=oracle
ExecStart=/usr/dbvisit/dbvserver/dbvserver -d start
ExecStop=/usr/dbvisit/dbvserver/dbvserver -d stop


y chan!!! funcionó.
 
Upvote 0

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.428
y dale con las soluciones con palitos de fosforo.... tu problenma es simple, es un servicio que sincroniza cosas ergo DEPENDE de los servicios de red, si no se lo dices, claramente tratara de levantar antes que la red este up y nacio chocapic... Por ejemplo en mi caso levanto los containers de mysql post servicio docker


[Unit]
Description=Mysql containers
Requires=docker.service
After=docker.service

mientras que el servicio docker a su vez

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket firewalld.service
Requires=docker.socket

Hace bien la pega, no te contagies del banalismo imperante en chile.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
y dale con las soluciones con palitos de fosforo.... tu problenma es simple, es un servicio que sincroniza cosas ergo DEPENDE de los servicios de red, si no se lo dices, claramente tratara de levantar antes que la red este up y nacio chocapic... Por ejemplo en mi caso levanto los containers de mysql post servicio docker


[Unit]
Description=Mysql containers
Requires=docker.service
After=docker.service

mientras que el servicio docker a su vez

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket firewalld.service
Requires=docker.socket

Hace bien la pega, no te contagies del banalismo imperante en chile.

Pero es que esa es la huea... la documentación oficial NO LO DICE. Ejecutándolo a mano me di cuenta de que dependía de un servicio en particular pero la doc no decía exactamente a que servicio. Red seguramente pero bueh, 15 segundos de delay nunca vienen mal.
 
Upvote 0

K3rnelpanic

non serviam
Miembro del Equipo
MOD
Se incorporó
1 Octubre 2007
Mensajes
6.064
Siempre que me encuentro con esos patitos digo "voy a escribirlo en mi blog a ver si le sirve a alguien más". Luego recuerdo que no tengo blog y digo "voy a escribirlo en capa9, a ver si le sirve a alguien más". Luego veo un gato por la ventana de la homeofficina y se me olvida hacerlo. :zippy
 
Upvote 0

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.428
Pero es que esa es la huea... la documentación oficial NO LO DICE. Ejecutándolo a mano me di cuenta de que dependía de un servicio en particular pero la doc no decía exactamente a que servicio. Red seguramente pero bueh, 15 segundos de delay nunca vienen mal.
Bueno cuando el Zuljinbug te ataque y por algun motivo el servidor encienda y el servicio de red no, entonces tus 15 segundos de delay te mandaran saludos desde el servicio caido que no funciono "y no tengo idea por que"
 
Upvote 0
Subir