¿Cómo ejecuto un script al inicio? [duplicar]

93

Tengo un script en una carpeta:

/path/to/my/script.sh

Necesito que este script se ejecute cada vez que se inicia el sistema (incluso si nadie inicia sesión en el sistema). ¿Qué debo hacer para que esto ocurra?

    
pregunta Rusty 12.12.2012 - 14:40

5 respuestas

121

Necesitará privilegios de root para cualquiera de los siguientes. Para obtener root, abra una terminal y ejecute el comando

sudo -i

y el símbolo del sistema cambiará a '#', lo que indica que la sesión del terminal tiene privilegios de administrador.

Alternativa n. ° 1: agregue comandos a /etc/rc.local

vi /etc/rc.local

con contenido como el siguiente:

# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1   # Added by me
exit 0

Alternativa n.º 2: agregue un trabajo Upstart (para sistemas anteriores a 15.04)

Crear /etc/init/myjob.conf

vi /etc/init/myjob.conf

con contenido como el siguiente

description     "my job"
start on startup
task
exec /path/to/my/script.sh

Alternativa n. ° 3: agregue un guión de inicio (obsoleto)

Crear un nuevo script en /etc/init.d/myscript .

vi /etc/init.d/myscript

(Obviamente no tiene que llamarse "myscript".) En este script, haz lo que quieras hacer. Tal vez solo ejecute el script que mencionó.

#!/bin/sh
/path/to/my/script.sh

Hazlo ejecutable.

chmod ugo+x /etc/init.d/myscript

Configure el sistema init para ejecutar este script al inicio.

update-rc.d myscript defaults
    
respondido por el jdthood 12.12.2012 - 15:07
45

No necesita root, ni siquiera para iniciar sesión.

Puede editar su crontab ( crontab -e ) y crear una entrada como esta:

@reboot /path/to/script.sh

De esta manera, puede ejecutarlo como un usuario normal. @reboot solo significa que se ejecuta cuando la computadora se inicia (no necesariamente solo cuando se reinicia).

    
respondido por el Dan Jones 12.12.2012 - 16:20
11

desde la terminal

  1. crear archivo newshell.sh.desktop en la carpeta ~/.config/autostart :

    gedit ~/.config/autostart/newshell.sh.desktop
    
  2. cambia Exec , Name y Comment value y agrega al archivo: primera línea

     [Desktop Entry]
     Type=Application
     Exec=/full/link/to/your/newshell.sh
     Name=newshell
     Comment=whatever you want
    
  3. guardar

o

puedes hacerlo desde GUI:

  1. ejecuta la herramienta de "inicio de aplicaciones" en Ubuntu 14.04, solo escríbela en el cuadro de búsqueda.
  2. agregue el mismo Exec , Name y Comment .
respondido por el ChaosPredictor 16.09.2015 - 14:31
2

En su casa, tiene un archivo llamado .bashrc. Este archivo se ejecuta en la apertura de su sesión.

Simplemente coloque algo como esto al final del archivo:

sh /path/to/your/script.sh

EDITAR: disculpa, no respondí tu pregunta porque mi solución se ejecuta cuando un usuario inicia sesión ...

Para ejecutar algo antes del inicio de sesión, puedes probar rcconf o rc-file: enlace

    
respondido por el Gp2mv3 12.12.2012 - 14:47
-1

Simplemente edite rc.local nano /etc/init.d/rc.local de la siguiente manera:

/path/to/my/script.sh || exit 1 
exit 0
    
respondido por el Arcsector 25.08.2017 - 22:43

Lea otras preguntas en las etiquetas