Página 1 de 1

Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Jue 14 Mar 2013 20:21
por Rubik [QNAP Club]
Si deseas que tu NAS QNAP ejecute una aplicación (o un conjunto de éstas) con cada inicio (o reinicio) de su sistema, éste es el procedimiento más recomendable:

1.- Conecta con el NAS QNAP utilizando SSH o Telnet (por ejemplo con PuTTY).

2.- Monta la partición flash correspondiente:

A) Si tu NAS está basado en ARM: TS-x10, TS-x12, TS-x19, TS-x19P...

mount -t ext4 /dev/mtdblock5 /tmp/config

B) Si tu NAS está basado en Intel (x86): TS-509, TS-809, TS-809U, TS-x39...

mount -t ext4 /dev/sdx6 /tmp/config

Nota: Dependiendo de la versión del firmware, la partición puede ser ext2, ext3 o ext4.

3.- Crea el archivo /tmp/config/autorun.sh y haz que sea ejecutable:

echo "#!/bin/sh" > /tmp/config/autorun.sh
echo "/share/HDA_DATA/.qpkg/autorun/autorun.sh > /share/HDA_DATA/.qpkg/autorun/autorun.log" >> /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh

4.- Desmonta la partición flash:

umount /tmp/config

5.- Crea el directorio /share/HDA_DATA/.qpkg/autorun con el archivo autorun.sh:

mkdir /share/HDA_DATA/.qpkg/autorun
cd /share/HDA_DATA/.qpkg/autorun/
touch autorun.sh
chmod +x autorun.sh
touch autorun.log

6.- Edita el archivo /share/HDA_DATA/.qpkg/autorun/autorun.sh para que ejecute todo lo que quieras cada vez que el NAS se encienda o reinicia.

Ejemplo 1: Mostrar la frase "Comando u orden ejecutada satisfactoriamente" (que se registrará en el archivo autorun.log).

/bin/echo "Comando u orden ejecutada satisfactoriamente"

Ejemplo 2: Iniciar Optware iPKG y prevenir que se vuelva a ejecutar.

/etc/init.d/Optware.sh start
/bin/rm -f /etc/rcS.d/QS101Optware

Nota: Si utilizas una configuración RAID, deberás utilizar la ruta MD0_DATA en lugar de HDA_DATA.

Tienes más información al respecto (en inglés) en el Wiki de QNAP.

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Vie 15 Mar 2013 00:48
por sanmi69
Existe una manera mas limpia de hacer esto y que tiene tiene como ventajas a que sobrevive a una actualización de firm y que nos ahorramos escribir en la flash.

La solución es modificar el fichero de configuración qpkg.conf añadiendo una entrada como si hubiéramos creado un paquete.

Yo tengo instalado un servidor DNS (dnsmask) en el nas y lo arrancó así al iniciar.

Mañana puedo poner exactamente como se hace pero es trivial.

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Lun 18 Mar 2013 00:58
por asturnauta
Una solución muy interesante.

sanmi, ¿puedes comentar un poco más el método?, parece una solución interesante.


Gracias

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Lun 18 Mar 2013 09:56
por sanmi69
Es secillo. Solo hay que modificar el qpkg.conf (/etc/config/qpkg.conf ) añadiendo otra entrada

La entrada podría ser asi:

[Autorun]
Name = Autorun
Version = 1.0
Enable = TRUE
QPKG_File = IQPKGScripts.qpkg
Date = 2013-03-18
Shell = /share/Public/scripts.sh
Install_Path = /share/Public
Author = Sanmi69
(Example of Mine Below)


Al reiniciar, veremos en el administrador qpkg una entrada Autorun. Como esta Enable=TRUE lo autoarranca, ejecutando lo que tengamos puesto en Shell.
En realidad lo que ejecutaria en este caso es:
/share/Public/scripts.sh start

Como desde el administrador tenemos opciones de parar y reiniciar servicio, lo que en realidad hace es llamar a shell con dos parametros:
/share/Public/scripts.sh stop
/share/Public/scripts.sh restart


Al darle a parar, qpkg cambia automaticamente el qpkg.conf para poner Enable=FALSE.

PD: Para que este todo organizado, tengo los scripts con el resto de paquetes qpkg en /share/HDA_DATA/.qpkg y ahi me creo una carpeta por cada "qpkg" que he creado.

PD2: Se le puede poner al paquete una descripcion, un icono, etc. Tan solo busca como es el formato de cada entrada y las porpiedades posibles. Como ejemplo tienes el resto de entradas de tu fichero :)

Yo creo que esta opcion es mucho mejor que la de modificar el autorun del nas por:
a) Se puede administrar el arranque desde la propia interfaz de administracion
b) Sobrevive a una actualizacion de firm
c) Las escrituras en la nand-flash son limitadas. Nos ahorramos escrituras para modificar cada vez que actualizamos el firm.

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Lun 18 Mar 2013 10:12
por asturnauta
Muchas gracias, lo anoto para probarlo cuando tenga un ratito.

Saludos

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Mié 20 Mar 2013 17:37
por Rubik [QNAP Club]
Obviamente, existen diversas formas de conseguir un mismo resultado. Si os fijáis más detenidamente en el mencionado procedimiento, podréis ver que sólo se escribe en flash en una única ocasión, puesto que el archivo autorun.sh de la partición flash, realmente ejecuta el archivo autorun.sh que se encuentra en una partición de disco duro, y es éste último archivo, el que se ha de modificar para personalizar el arranque del sistema del NAS. De este modo, no perjudicamos la memoria flash (o DOM) del NAS, la cual, tiene unos ciclos de lectura y escritura muy limitados (como ya se ha comentado).

No obstante, el procedimiento de sanmi69 es igual de válido, e incluso, más interesante. ;)

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Mié 20 Mar 2013 18:15
por sanmi69
Rubik [QNAP Club] escribió:Obviamente, existen diversas formas de conseguir un mismo resultado. Si os fijáis más detenidamente en el mencionado procedimiento, podréis ver que sólo se escribe en flash en una única ocasión, puesto que el archivo autorun.sh de la partición flash, realmente ejecuta el archivo autorun.sh que se encuentra en una partición de disco duro, y es éste último archivo, el que se ha de modificar para personalizar el arranque del sistema del NAS. De este modo, no perjudicamos la memoria flash (o DOM) del NAS, la cual, tiene unos ciclos de lectura y escritura muy limitados (como ya se ha comentado).

No obstante, el procedimiento de sanmi69 es igual de válido, e incluso, más interesante. ;)


A lo que me refería, es a que cada vez que flasheemos un nuevo firm, se pierde la modificación del autorun que está en flash, por lo que en cada actualización de firm, en lugar de escribir 1 vez en la flash, escribimos 2 veces (una con la actualización y otra con la modificación del autorun). Al menos esto me ocurría en versiones 3.4....

Aparte, yo creo que mediante la modificación de qpkg, tenemos más control de que se ejecuta al inicio o no ;)

Re: Ejecuta tu propia aplicación al inicio (autorun.sh)

NotaPublicado: Mar 29 Sep 2015 22:08
por Juanjo
Hola.
Aunque este post tiene algún tiempo me gustaría partir de el para plantearos una pregunta:

He creado una pequeña aplicación en mac con el editor de scripts de OSX. ¿como puedo hacer que se ejecute en mi NAS?

Gracias