it-swarm-es.com

¿Cómo ejecuto un script al inicio?

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é necesito hacer para que esto suceda?

108
Rusty

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 de terminal tiene privilegios de root.

Alternativa # 1: Agregar 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: Agregar un trabajo de inicio (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 # 3: Agregar un script de inicio (obsoleto)

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

vi /etc/init.d/myscript

(Obviamente, no tiene que llamarse "myscript"). En este script, haga lo que quiera hacer. Quizás 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
133
jdthood

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).

56
Dan Jones

desde la terminal

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

    gedit ~/.config/autostart/newshell.sh.desktop
    
  2. cambie el valor Exec, Name y Comment y agregue al archivo: primera línea

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

o

puedes hacerlo desde la GUI:

  1. ejecute la herramienta "aplicaciones de inicio" en Ubuntu 14.04, simplemente escríbala en el cuadro de búsqueda.
  2. agregue el mismo Exec, Name y Comment.
13
ChaosPredictor

En su hogar, tiene un archivo llamado .bashrc. Este archivo se ejecuta al abrir su sesión.

Simplemente ponga algo como esto al final del archivo:

sh /path/to/your/script.sh

EDITAR: lo siento, 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, puede probar rcconf o rc-file: http://www.debianadmin.com/manage-linux-init-or-startup-scripts.html

2
Gp2mv3