Ejecutar un script en el arranque de Linux [Solucionado]
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Ejecutar un script en el arranque de Linux [Solucionado]
Buenas!
He creado un pequeño script que imprime la fecha y hora en un fichero, y quiero hacerlo como servicio. Es decir, que se ejecute a cada inicio.
Según he leído por ahí, hay 2 pasos básicos que hacer:
1. Meterlo en /etc/init.d/
2. Crear un enlace simbólico a éste en /etc/rc2.d/
He estado haciendo pruebas, y haciendo el paso 1 me sucede lo siguiente:
a. Se me ejecuta (no ha hecho falta hacer el paso 2 y no sé porqué)
b. Se me ejecuta 2 veces. Aparentemente al apagar y al iniciar.
a y b me desconciertan.
¿Me puede alguier echar una mano?
Gracias!
He creado un pequeño script que imprime la fecha y hora en un fichero, y quiero hacerlo como servicio. Es decir, que se ejecute a cada inicio.
Según he leído por ahí, hay 2 pasos básicos que hacer:
1. Meterlo en /etc/init.d/
2. Crear un enlace simbólico a éste en /etc/rc2.d/
He estado haciendo pruebas, y haciendo el paso 1 me sucede lo siguiente:
a. Se me ejecuta (no ha hecho falta hacer el paso 2 y no sé porqué)
b. Se me ejecuta 2 veces. Aparentemente al apagar y al iniciar.
a y b me desconciertan.
¿Me puede alguier echar una mano?
Gracias!
Última edición por banderas20 el Dom Jul 28, 2013 2:59 am, editado 1 vez en total.
Re: Ejecutar un script en el arranque de Linux
mmmmmmmm
Y en que sistema, me imagino que en debian o derivados.
http://cristianolmos.blogspot.mx/2009/0 ... ue-de.html
Y en que sistema, me imagino que en debian o derivados.
http://cristianolmos.blogspot.mx/2009/0 ... ue-de.html
Cuando mi maestro me reprendió, me dijo: Alejandro Magno a los 20 años conquistaba el mundo, Yo le conteste "si pero tenia de maestro a Aristóteles".
Twitter: @mcuentos
Twitter: @mcuentos
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Re: Ejecutar un script en el arranque de Linux
Justamente es un Debian, y justamente ese link es el que estaba usando como guía. Pero, aparte de los problemas que he mencionado, me da error la siguiente orden:cuentos escribió:mmmmmmmm
Y en que sistema, me imagino que en debian o derivados.
http://cristianolmos.blogspot.mx/2009/0 ... ue-de.html
Código: Seleccionar todo
#sudo update-rc.d nombrescript
Gracias!
Re: Ejecutar un script en el arranque de Linux
En debian, no viene activado sudo por defecto.
Entras a la terminal de root, y ejecutas los comandos sin sudo.
Entras a la terminal de root, y ejecutas los comandos sin sudo.
Cuando mi maestro me reprendió, me dijo: Alejandro Magno a los 20 años conquistaba el mundo, Yo le conteste "si pero tenia de maestro a Aristóteles".
Twitter: @mcuentos
Twitter: @mcuentos
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Re: Ejecutar un script en el arranque de Linux
Ya, eso ya lo he hecho, y me tira para adelante. Pero tengo los problemas que pongo en el primer post.cuentos escribió:En debian, no viene activado sudo por defecto.
Entras a la terminal de root, y ejecutas los comandos sin sudo.
Gracias.
Re: Ejecutar un script en el arranque de Linux
Un servicio es un proceso en segundo plano, que puede o no arrancar al inicio. De la misma forma, un proceso que se ejecuta al inicio no tiene que ser necesariamente un servicio.banderas20 escribió:quiero hacerlo como servicio. Es decir, que se ejecute a cada inicio.
Cuando se trata de ejecutar un script al inicio, hay varias formas (como siempre en esto de Linux, para gustos colores):
-Una es como lo estas haciendo, metiéndolo en init.d y demás, que tendría que funcionar.
-Otra, que para mi es bastante más sencilla e igual de útil en este caso, es llamar al script desde /etc/rc.local.
rc.local es un script que se ejecuta al arrancar el sistema, aunque por defecto no hace nada porque no contiene instrucciones. Podrías poner en el fichero la ruta completa al script (antes del 'exit 0'), y listo.
Por aquí hay un hilo sobre este mismo tema.
Editado -- 23 Jul 2013, 23:56 --
Edito: si se te ejecuta al apagar, probablemente sea porque tienes un enlace en /etc/rc0.d/ a tu script. Puedes borrarlo.
Saludos
Re: Ejecutar un script en el arranque de Linux
Hay otra forma, se trata de hacerlo mediante crontab
su
crontab -e
agregas
@reboot sleep 25 && bash ruta aĺ script
Si tines por ejemplo el editor gedit, te va a resultar mas cómodo poner
su
export EDITOR=gedit && crontab -e
@reboot sleep 25 && bash ruta aĺ script
su
crontab -e
agregas
@reboot sleep 25 && bash ruta aĺ script
Si tines por ejemplo el editor gedit, te va a resultar mas cómodo poner
su
export EDITOR=gedit && crontab -e
@reboot sleep 25 && bash ruta aĺ script
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Re: Ejecutar un script en el arranque de Linux
Retranca, ¿cuál es el hilo que comentas? ¿Qué diferencia hay entre meterlo en rc2.d y rc.local?
Saludos y gracias a todos!
Saludos y gracias a todos!
Re: Ejecutar un script en el arranque de Linux
Como digo, para gustos colores. Y habrá más, imaginoEnriqueK escribió:Hay otra forma, se trata de hacerlo mediante crontab

sistema/ejecutar-script-arranque-debian-t45615.htmlbanderas20 escribió:Retranca, ¿cuál es el hilo que comentas? ¿Qué diferencia hay entre meterlo en rc2.d y rc.local?
Saludos y gracias a todos!
En cuanto a las diferencias, pues... a mi entender, los rcX.d y el init.d están pensados para los servicios, y su funcionamiento es mas complejo, distinguiendo entre runlevels y demás. En cambio, el rc.local es simplemente un script que ejecuta instrucciones u otros scripts al arrancar el equipo, y además lo hace siempre al final, cuando termina de arrancar todo lo que está en el rc2.d (o el runlevel que sea), con lo que no te tienes que preocupar por las prioridades (los numeros del 00 al 99 del nombre del archivo).
Pero funcionar te va a funcionar de todas formas, así que tú eliges.
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Re: Ejecutar un script en el arranque de Linux
Cojonudo! Eso me aclara muchas cosas.retranca escribió:sistema/ejecutar-script-arranque-debian-t45615.htmlbanderas20 escribió:Retranca, ¿cuál es el hilo que comentas? ¿Qué diferencia hay entre meterlo en rc2.d y rc.local?
Saludos y gracias a todos!
En cuanto a las diferencias, pues... a mi entender, los rcX.d y el init.d están pensados para los servicios, y su funcionamiento es mas complejo, distinguiendo entre runlevels y demás. En cambio, el rc.local es simplemente un script que ejecuta instrucciones u otros scripts al arrancar el equipo, y además lo hace siempre al final, cuando termina de arrancar todo lo que está en el rc2.d (o el runlevel que sea), con lo que no te tienes que preocupar por las prioridades (los numeros del 00 al 99 del nombre del archivo).
Pero funcionar te va a funcionar de todas formas, así que tú eliges.
Por cierto, algo leí de que depende donde pongas el script, éste se ejecuta al arrancar y al cerrar el sistema. ¿Te suena?
Muchísimas gracias!
- maiku
- Moderador
- Mensajes: 1541
- Registrado: Jue Abr 19, 2007 7:00 am
- Ubicación: Cojutepeque, El Salvador C. A.
Re: Ejecutar un script en el arranque de Linux
banderas20 escribió:Me dice que está incompleto. Le añado al final defaults y se lo come, pero me da los problemas mencionados en mi post.Código: Seleccionar todo
#sudo update-rc.d nombrescript
Gracias!
Hola banderas, según tengo entendido, cuando lanzas update-rc.d nombrescript defaults se agregará en los runlevels por defecto (2,3,4,5) para inicio y se agregará el script para pararlo en los restantes runlevels. Es por eso que te aparecerá lo que hace el script al inicio y al final.
para ver la forma que mejor te convega podrías revisar esta página:
http://enavas.blogspot.com/2008/12/upda ... do-el.html
Grüße...
Maiku
Full linux alchemist!!!
Maiku
Full linux alchemist!!!
Re: Ejecutar un script en el arranque de Linux
En Linux, además de los runlevels multiusuario (2,3,4,5), contamos con el runlevel 0 (apagado), 1 (single user o monousuario) y 6 (reinicio). De hecho, una forma de apagar el equipo es con el comando init 0, y para reiniciar init 6.
Para cada runlevel, como has podido comprobar, existe un directorio rc (rc0.d,rc1.d,...). Por eso, si colocas un script en rc0.d, se ejecutará al apagar, y si lo colocas en rc6.d se ejecutará al reiniciar.
Para cada runlevel, como has podido comprobar, existe un directorio rc (rc0.d,rc1.d,...). Por eso, si colocas un script en rc0.d, se ejecutará al apagar, y si lo colocas en rc6.d se ejecutará al reiniciar.
-
- Forista Menor
- Mensajes: 67
- Registrado: Mar Jul 09, 2013 1:20 pm
Re: Ejecutar un script en el arranque de Linux
Gracias por vuestra ayuda! Habéis sido muy claros. 

Re: Ejecutar un script en el arranque de Linux
No hay de que.
Ahora si consideras que tu duda ha sido aclarada, por favor edita el primer mensaje de este hilo y agrega al título [Solucionado].
Saludos
Ahora si consideras que tu duda ha sido aclarada, por favor edita el primer mensaje de este hilo y agrega al título [Solucionado].
Saludos
-
- Temas similares
- Respuestas
- Vistas
- Último mensaje
-
- 0 Respuestas
- 1527 Vistas
-
Último mensaje por pablomacri06
-
- 2 Respuestas
- 1752 Vistas
-
Último mensaje por ricardo2099
-
- 5 Respuestas
- 3302 Vistas
-
Último mensaje por abarzuaf
-
- 3 Respuestas
- 2041 Vistas
-
Último mensaje por carlymx
-
- 5 Respuestas
- 2715 Vistas
-
Último mensaje por dracel