creacion de un demonio

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
vampir
Forista Distinguido
Forista Distinguido
Mensajes: 1031
Registrado: Mar Nov 21, 2006 8:00 am
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
Contactar:

creacion de un demonio

Mensaje por vampir » Mar Jun 16, 2009 3:58 pm

buenas

me gustaria programar un demonio (sencillisimo) para que al arrancar el ordena me cargue la tarjeta capturadora de video,

mis preguntas son:
se escribe en bash? (supongo que si)
lo normal es ponerlo en /etc/init.d, pero para que lo cargue el sistema donde se pone? (enlace simbolico)

muchas gracias por vuestra atencion
linux user #439128
DebianSqueeze
http://www.acarrasco.es

Proyecto:
http://alejandria.host56.com

Código: Seleccionar todo

No sé juntar "informática" y "legal" en una misma palabra....
yo sí: LINUX
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: creacion de un demonio

Mensaje por niky45 » Mar Jun 16, 2009 4:57 pm

si solo necesitas que te cargue la tarjeta, es mucho mas simlpe poner las instrucciones pertinentes en /etc/rc.local (debian y derivadas.). yo lo he hecho, tantco con drivers (wifi, en mi caso), como con un HD que ne me detecta hasta muy tarde, y no lo monta con el fstab

como se pregrama un demonio??
en principio, seria algo asi (creo, yo nunca he pregramado nada mas que scripts que
no funcinonan)

para que funcione siempre (los demonios funcionan siempre, por eso son demonios)

wile 1==1 ; do
(lo que tenga que hacer)
done
y lo que tenga que hacer, pues... lo que tenga que hacer. (por ejemplo, ver si esta el driver cargado y en caso negativo, cargarlo)

PD: si, es en bash. Donde debe estar.... hmmm... yo haria un poco el bruto (que bien se me da) y lo meteria directamente en /etc/rcX.d (o donde quieras y con enlaces simbolicos a las rcX que correspondan a los niveles de arranque...). aunque supongo que en init.d quedaria mejor...
:wink:
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
vampir
Forista Distinguido
Forista Distinguido
Mensajes: 1031
Registrado: Mar Nov 21, 2006 8:00 am
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
Contactar:

Re: creacion de un demonio

Mensaje por vampir » Mar Jun 16, 2009 9:11 pm

por cierto, el while si quieres que siemrpe sea verdad queda mas elegante
while true; do
xD

en rd.X...el caso es, que niveles son en el arranque, cuales de apagado, y en que nivel deveria ir...
linux user #439128
DebianSqueeze
http://www.acarrasco.es

Proyecto:
http://alejandria.host56.com

Código: Seleccionar todo

No sé juntar "informática" y "legal" en una misma palabra....
yo sí: LINUX
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: creacion de un demonio

Mensaje por niky45 » Mar Jun 16, 2009 9:28 pm

y que es lo que es "true"?? no se, yo no veo la condicion. de todas formas he de decir que la idea no es mia, la vi por ahi, precisamente cuando alguien intantaba hacer un demonio.... :wink:

en que niveles iria?? hmmm distro basada en debian, no?? (porque lo cierto es que depende de la distro....) echale un ojo a esto: http://wiki.debian.org/RunLevel

segun eso, en los 1-5 (para incluir single y multi)

aunque nunca he sabido la diferencia entre los diferentes multiuser.... :roll: te puedo decir que por deferto usa el 2 (o el manos, mi debian lo usa... :roll:)

:D
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
vampir
Forista Distinguido
Forista Distinguido
Mensajes: 1031
Registrado: Mar Nov 21, 2006 8:00 am
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
Contactar:

Re: creacion de un demonio

Mensaje por vampir » Mar Jun 16, 2009 10:05 pm

una condicion es un booleano SIEMPRE, por tanto si le das el valor booleano true, siempre sera cierta, i por tanto siempre entrara ;)

pos lo meteremos en el 2 ya contare como ha ido poniendolo ahi, cuando reinicie xD
linux user #439128
DebianSqueeze
http://www.acarrasco.es

Proyecto:
http://alejandria.host56.com

Código: Seleccionar todo

No sé juntar "informática" y "legal" en una misma palabra....
yo sí: LINUX
Avatar de Usuario
vampir
Forista Distinguido
Forista Distinguido
Mensajes: 1031
Registrado: Mar Nov 21, 2006 8:00 am
Ubicación: Mi casa, Sant marçal, marratxí, mallorca, baleares, españa, europa, el mundo, planeta solar...
Contactar:

Re: creacion de un demonio

Mensaje por vampir » Vie Jun 19, 2009 8:36 pm

ya lo he creado y funciona, para quien le interese un mini tuto, es muy sencillo el concepto:

con permisos de root creamos en /etc/init.d/ el archivo donde vamos a programarlo, yo lo he llamado conceptronic quedando /etc/init.d/conceptronic

lo abrimos con nuestro editor de texto preferido, y seguimos la siguiente estructura:

#!/bin/sh -e

#COMPROBACIONES SI FUESEN NECESARIAS, EN MI CASO NO LO SON

Case "$1" in
start)
ejecuciones para el inicio
;;
stop)
ejecuciones para la parada
;;
restart) #opcional
ejecuciones para el reseteo
;;
*)
echo "utilice /etc/init.d/conceptronic {stop/start/restart}"
exit 1
;;
esac

exit 0


siempre el mismo esquema, el mio me a quedado

#!/bin/sh -e

case "$1" in
stop)
rmmod em28xx
;;
start)
rmmod em28xx
modprobe em28xx card=9
echo eb1a 2821 > /sys/bus/usb/drivers/em28xx/new_id
;;
*)
echo "utilice /etc/init.d/conceptronic {stop/start}"
exit 1
;;
esac

exit 0


ahora le damos permisos de ejecucion
chmod +x /etc/init.d/conceptronic

y creamos el enlace simbolico al nivel de arranque 2
ln -s /etc/init.d/conceptronic /etc/rc2.d/S01conceptronic

el nombre S01conceptronic mirad que las tres primeras letras no esten pilladas, yo os aconsejo cojer una de las letras que estan puestas, con una combinacion de numeros nueva (ya que cada nivel tiene sus letras)

y asi me funciona de fabula, ya me carga la tarjeta en el arranque del sistema, o poderoso linux xD
linux user #439128
DebianSqueeze
http://www.acarrasco.es

Proyecto:
http://alejandria.host56.com

Código: Seleccionar todo

No sé juntar "informática" y "legal" en una misma palabra....
yo sí: LINUX
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: creacion de un demonio

Mensaje por niky45 » Sab Jun 20, 2009 3:46 pm

sigo pensando que era mas facil editar el /etc/rc.local y poner un

Código: Seleccionar todo

rmmod em28xx
modprobe em28xx card=9
echo eb1a 2821 > /sys/bus/usb/drivers/em28xx/new_id


antes del exit0

pero asi has aprendido a hacer un demonio, que eso tambien es importante. :wink:
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: creacion de un demonio

Mensaje por fpuga » Dom Jun 21, 2009 11:04 am

Las tres primeras letras de los archivos en los directorios rc tienen un significado.

La primera es una S o una K. Si es un S llamará al comando que linka pasándole como parametro start. Si es una K llamará al comando pasándole como parámetro stop.

Lo siguiente son dos cifras que indican el orden en que se ejecutarán los comandos. Lo lógico es que los servicios que agregues tu se ejecuten de últimos
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Mensaje por hmg79 » Dom Jun 21, 2009 3:24 pm

Como dice fpuga, el significado es simple S le indica que arranque el proceso, K que lo pare, fíjate por ejemplo en los runlevel rc.6, vas a encontrar que todos los que empiezan con K son archivos de parada de servicios como kdm,alsa-utils,etc, hay otros que indica con S, que son los necesarios para el correcto apagado del sistema.-

El valor númerico 00 a 99 por ejemplo están indicando el orden en que se tienen que ir levantando los procesos, los primeros son los que se tienen que levantar en esa posición ya que arrancan servicios esenciales del sistema operativo, por ejemplo si uno desea que el equipo arranque mas rápidamente se puede colocar varios procesos con el mismo valor, siempre observando la dependencia de dicho demonio, es decir no podes levantar samba o apache antes de haber levantado networking, pero si es posible levantar samba y apache juntos.-

En general como indico fpuga los demonios que uno cree, deber ser los últimos en levantarse, por ejemplo S99Conceptronic, me parece que te van a querer hacer jucio por usar ese nombre, si mal no recuerdo es el nombre de una empresa.-

niky45, en debian no existe diferencia entre ningún runlevels, todos arrancan lo mismo, en otras distros si existe diferencia.-
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje