[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ejecutar un script desde postinst



xve escribió:
El Friday 07 November 2008, Santiago Vila escribió:
On Fri, 7 Nov 2008, xve wrote:
Hola a todos,

dispongo de un paquete .deb realizado por nosotros, el cual queremos que
al terminar de instalarse, ejecute un script, pero no lo conseguimos que
nos funcione.

El fichero postinst contiene:
----------------------------------
#!/bin/sh
set -e

echo "Restarting cron...."
/etc/init.d/cron restart

/etc/file.sh
----------------------------------

El cron lo realiza correctamente, pero el file.sh no lo ejecuta.
El file.sh tiene derechos de lectura y ejecucion
¿Dónde tiene derechos de lectura y ejecución? ¿En el código fuente del
paquete o dentro del .deb?
Los derechos de lectura y ejecucion estan en el fichero file.sh que esta dentro del paquete. Dentro del paquete, logicamente tiene derechos de ejecucion.

¿Aparece como ejecutable al hacer "dpkg -c paquete.deb"?
Me muestra todos los ficheros que contiene el paquete

Hemos probado poniendo:
./etc/file.sh
. /etc/file.sh
/bin/sh /etc/file.sh
sh /etc/file.sh

Hemos puesto para ver si da algun resultado:
/etc/file.sh > /etc/result

Pero de ninguna manera conseguimos que se ejecute.
¿Cómo sabes que no se ejecuta? ¿Has puesto esto como primera línea?
Sabemos que nos ejecuta, porque en su interior tiene puesto:
echo "hola"
echo "hola2" > /home/x

no vemos hola en la pantalla, y no nos crea el fichero "x" dentro de "/home"

echo Hola. Soy /etc/file.sh

¿Qué sucede si además de usar "set -e" en el postinst pones "set -x"
para que te cuente su vida?
He puerto tal como me comentas "set -x", y me indica que lo ejecuta:
----------------------------------
+ echo "Restarting cron...."
Restarting cron....
+ /etc/init.d/cron restart
Restarting periodic command sheduler: crond
+ /etc/file.sh
----------------------------------
aunque realmente no lo ejecuta si instalo el paquete con aptitude install ..., pero si instalo el paquete con dpkg -i sin coger el fichero de un repositorio si que me funciona... muestra lo mismo en pantalla, pero aqui si que lo ejecuta. No entiendo la diferencia¿?

¿Tampoco funciona si lo pones en /usr/bin en lugar de /etc?
Hace exactamente lo mismo...

[ Sólo unas cuantas ideas ]

Muchas gracias por tu ayuda santiago.

¿Hiciste la prueba de ejecutarlo a manopla directamente, desde consola?
Digo para estar seguro de que no tiene algún errorcito que le impida ejecutarse.

Saludos



Reply to: