¿cómo hacer que un un script inicie automáticamente?
Re: ¿cómo hacer que un un script inicie automáticamente?
También probé poniendo en /etc/init.d un script sencillo que me abriera nautilus, y tampoco se ejecutaba cuando me logueaba. Y si, le puse permisos de ejecución.
Re: ¿cómo hacer que un un script inicie automáticamente?
Si lo que deseas es que se ejecute algo al iniciar tu sesión, mejor editar ~/.bashrc y poner ahi el comando.
Si no te funciona es que hay algo mal en tu sistema, porque esto es funcionalidad estándar de bash.
Si no te funciona es que hay algo mal en tu sistema, porque esto es funcionalidad estándar de bash.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke
- Edmund Burke
Re: ¿cómo hacer que un un script inicie automáticamente?
No, el caso es que lo que esté en .bashrc, se ejecuta cada vez que se inicie un shell, no cuando se inicie el sistema. Pero bueno, el caso es que cuando uno quiere hacer un daemon, con agregarlo solamente a /etc/init.d no tiene el problema resuelto. He buscado mucho en internet, y todos los caminos apuntan a la misma dirección. Luego de haber copiado tu script a /etc/init.d con todos los permisos de ejecución, tienes que hacerle los enlaces simbólicos según cómo quieres que se ejecute. Los enlaces simbólicos tienen que ser desde /etc/rc<runlevel>.d. Los runlevels son los siguientes:
Nivel de ejecución ----Nombre o denominación -----Descripción
0 ----Alto------Alto o cierre del sistema (Apagado).
1 ----Modo de usuario único (Monousuario)-----No configura la interfaz de red o los demonios de inicio, ni permite que ingresen otro usuarios que no sean el usuario root, sin contraseña. Este nivel de ejecución permite reparar problemas, o hacer pruebas en el sistema.
2 ----Multiusuario----Multiusuario sin soporte de red.
3 ----Multiusuario con soporte de red.----Inicia el sistema normalmente.
4-------No usado.
5 ----Multiusuario gráfico (X11) -----Similar al nivel de ejecución 3 + display manager.
6 Reinicio Se reinicia el sistema.
El enlace sibólico tiene que tener el siguiente formato [S|K][0-9][0-9]<nombre script>.
Donde S viene de start y K viene de kill. Nunca se debe hacer un symlink con S desde los runlevel 0 ó 6. Los dos números son la prioridad para atender al daemon, el mas bajo es 99 y el más alto 00.
Por ejemplo:
Si quieres que se ejecute el daemon cuando se inicie la sesión con display manager, y se pare cuando se apague o se reinicie la máquina, debes de tener los siguientes ficheros (imaginando que tu script se llame script):
/etc/init.d/script
/etc/rc5.d/S98script --> /etc/init.d/script
/etc/rc0.d/K02script --> /etc/init.d/script
/etc/rc6.d/K02script --> /etc/init.d/script
El template del script de /etc/init.d/ es el siguiente:
Con todo esto debería ser suficiente para crear el daemon y se inicie en el próximo reinicio, así todo, no me funciona. Aunque ahora que lo pienso, no le he dado permiso de ejecución a los symlinks (aunque creo que cuando los creo, ya se crean con todos los permisos), voy a probar (sin muchas esperanzas), y después les digo.
Nivel de ejecución ----Nombre o denominación -----Descripción
0 ----Alto------Alto o cierre del sistema (Apagado).
1 ----Modo de usuario único (Monousuario)-----No configura la interfaz de red o los demonios de inicio, ni permite que ingresen otro usuarios que no sean el usuario root, sin contraseña. Este nivel de ejecución permite reparar problemas, o hacer pruebas en el sistema.
2 ----Multiusuario----Multiusuario sin soporte de red.
3 ----Multiusuario con soporte de red.----Inicia el sistema normalmente.
4-------No usado.
5 ----Multiusuario gráfico (X11) -----Similar al nivel de ejecución 3 + display manager.
6 Reinicio Se reinicia el sistema.
El enlace sibólico tiene que tener el siguiente formato [S|K][0-9][0-9]<nombre script>.
Donde S viene de start y K viene de kill. Nunca se debe hacer un symlink con S desde los runlevel 0 ó 6. Los dos números son la prioridad para atender al daemon, el mas bajo es 99 y el más alto 00.
Por ejemplo:
Si quieres que se ejecute el daemon cuando se inicie la sesión con display manager, y se pare cuando se apague o se reinicie la máquina, debes de tener los siguientes ficheros (imaginando que tu script se llame script):
/etc/init.d/script
/etc/rc5.d/S98script --> /etc/init.d/script
/etc/rc0.d/K02script --> /etc/init.d/script
/etc/rc6.d/K02script --> /etc/init.d/script
El template del script de /etc/init.d/ es el siguiente:
Código: Seleccionar todo
# Script template para demonios
#!/bin/sh
programa=/home/usuario/programa/ #HOME del programa a ejecutar
startup=$programa/bin/startup.sh #código para iniciar el programa
shutdown=$programa/bin/shutdown.sh #código para parar el programa
start(){
echo -n $"Starting service: "
$startup
RETVAL=$?
echo
}
stop(){
echo -n $"Stopping service: "
$shutdown
RETVAL=$?
echo
}
restart(){
stop
sleep 10
start
}
# Dependiento del parametro que se le pase
#start - stop - restart ejecuta la función correspondiente.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usar: $0 {start|stop|restart}"
exit 1
esac
exit 0
Re: ¿cómo hacer que un un script inicie automáticamente?
El tema está en que los scripts de inicialiciación se ejecutan antes de que se inicie la sesión, por eso sugería utilizar .bashrc si lo que se desea es simplemente cargar nautilus. Es una forma de hacerlo, no la única. Otra variante podría ser colocar un script en /etc/X11/Xsession.d/
De todas maneras si lo que deseas es iniciar un daemon, el momento indicado es durante el inicio del sistema, no cuando se inicie la sesión. En este caso puedes cargarlo con los runlevels, con systemd, desde el archivo de interfaces, etc. Todo depende de tu configuracion y lo que desees hacer.
De todas maneras si lo que deseas es iniciar un daemon, el momento indicado es durante el inicio del sistema, no cuando se inicie la sesión. En este caso puedes cargarlo con los runlevels, con systemd, desde el archivo de interfaces, etc. Todo depende de tu configuracion y lo que desees hacer.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke
- Edmund Burke
Re: ¿cómo hacer que un un script inicie automáticamente?
Bueno, todo lo que dije, que es lo que todos en internet dicen, no me funcionó. /etc/X11/Xsession.d/ me resolvió, era justo lo que estaba buscando. Estoy muy agradecido por tus respuestas. De todas formas me gustaría seguir investigando sobre los daemons, no solo para cuando se cargue la parte gráfica. Muchas gracias.