Hola muy buenas tardes tengan todos !
disculpen aun sigo siendo un novato en linux, estoy trabajando con una tarjeta TS-7200 y debian sarge 3.1, y tengo una duda para las personas que saben =), lo que pasa es que necesito que una aplicacion que tengo en turbo c se ejecute al mismo tiempo del inicio del SO, he leido mucho sobre eso y segun debo hacer un linkeo hacia la aplicacion con el comando "ln -s direccion_init.d direccion_rc3.d" donde 3 es el nivel de ejecucion donde quiero que se ejecute la aplicacion, pero la aplicacion la tengo en "/home/<mi_usuario>/./key", entonces mis preguntas son:
¿como puedo hacer que la aplicacion se ejecute en el nivel 3?
¿se puede hacer un linkeo directamente a la aplicacion?, es decir, que no tenga que ser necesariamente al init.d, o si es necesario ¿como pasar mi aplicacion al init.d?
Les agradezco su tiempo y disculpen la ignorancia =)...
ufff para empezar tu programa en turbo C esta compilado con el turbo borland C de windows. Asi que no podras ejecutarlos en linux
Ahora compilalo con el gcc a ver si funciona
** recuerda que en gnu/linux no existe winforms.h ni el conio.h
Sobre lo de los runs levels esto te ayudara
http://www.debianhelp.co.uk/runlevels.htm
hola!!
muchas gracias por la atención, aun sigo con la duda, entiendo bien que debo compilar en debian, eso ya lo hice mi programa esta en debian compilado y se ha creado el ejecutable, lo que nosé es como mandarlo llamar junto con el sistema operativo, en el runlevel 5 por ejemplo, me han comentado hacerca de scripts de inicio que debo crear uno, alguien puede decirme como y que debe contener??
muchas gracias ^.^
Puede ser tan fácil como escribir un script en /etc/rc.boot llamando a tu binario. Supongamos que tu binario es el hdparam:
#!/bin/sh
echo -n "Setting the spindown time for first IDE hdd (5 min)...."
/usr/sbin/hdparm -S 60 /dev/hda
echo "done."
grábalo como /etc/rc.boot/hdparm con permisos 755.
Listo!
Hilando mas fino (mayores requerimientos de control)
Para por ejemplo arrancar programas en un runlevel determinado y paralos en otro, hay que usar /etc/init.d y generar los enlaces correspondientes en /etc/rc*.d.
Para un ejemplo de como trabajar con init.d, ver /etc/init.d/ppp y /etc/rc*.d/*ppp.
Si se requiere usar start-stop-daemon porque el demonio no genere ficheros de pid o que haya que ejecutarlo como un usuario determinado, es interesante consultar /etc/init.d/inetd.
ya no se aconseja el uso de /etc/rc.boot/ y si /etc/rcS.d que son enlaces a /etc/init.d. Es decir se pone el script en /etc/init.d y se crea un enlace a /etc/rcS.d. Esto se puede manejar con update-rc.d o crear los enlaces a mano. Con update-rc.d para hacer que el script arranque siempre usea /etc/rcS.d
update-rc.d script start 60 S .
Para borrarlo
update-rc.d -f script remove
Para que arranque en con el numero 40 en los runlevel 2 3 4 5 y pare con el numero 20 en los runlevel 0 1 6 seria
sol:~# update-rc.d script start 40 2 3 4 5 . stop 20 0 1 6 .
Adding system startup for /etc/init.d/script ...
/etc/rc0.d/K20script -> ../init.d/script
/etc/rc1.d/K20script -> ../init.d/script
/etc/rc6.d/K20script -> ../init.d/script
/etc/rc2.d/S40script -> ../init.d/script
/etc/rc3.d/S40script -> ../init.d/script
/etc/rc4.d/S40script -> ../init.d/script
/etc/rc5.d/S40script -> ../init.d/script
Y para borrarlool:~# update-rc.d -f script remove
update-rc.d: /etc/init.d/script exists during rc.d purge (continuing)
Removing any system startup links for /etc/init.d/script ...
/etc/rc0.d/K20script
/etc/rc1.d/K20script
/etc/rc2.d/S40script
/etc/rc3.d/S40script
/etc/rc4.d/S40script
/etc/rc5.d/S40script
/etc/rc6.d/K20script
Que se inicie simpre que arranque el sistema
sol:~# update-rc.d script start 40 S .
Adding system startup for /etc/init.d/script ...
/etc/rcS.d/S40script -> ../init.d/script
http://www.esdebian.org/article.php?stor...3002806547
Para leer y disfrutar:
The Linux Boot Process
An introduction to services, runlevels, and rc.d scripts
An introduction to services, runlevels, Ubuntu updaterc.d y Gentoo rcupdate
Guiones de inicio
Debian boot-up method (ver 10.5 y 10.6)
Buenas tardes
Por fin logré que se ejecutara el programa, como todo mundo dijo, me cree un fichero diablo.sh por ejemplo, en el ke le deje el comando exec /home/usuario/key lo pase al init.d y luego hice un link al nivel de ejecucion 2 ln -s /etc/init.d/diablo.sh /etc/rc2/S98diablo.sh y listo reinicie i mi aplicacion se ejecuta antes del login =).
nota: para aquellos que deseen seguir mis pasos en el fichero de shell pongan un menu donde les permita elegir si desean continuar con el login o ejecutar su programa para evitarse problemas.
Si desean mas informacion como crear y editar un fichero etonces leanse este tutorial, el capitulo 7 es para editar ficheros pero leanse todo de preferencia =) :
http://foros.maximopc.org/showthread.php?t=22667
Espero les sirva a todos saludos!!
Posdata: ya pueden poner el comentario como resuelto =)