GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo ejecutar un comando después del arranque?

Depende de las distribuciones.

Si está en distribuciones derivadas de Debian, hay al menos dos lugares adecuados, /etc/rc.local y crontab. Puede invocar crontab como root,

   crontab -e

y luego inserte esta línea

   @reboot /home/my_name/bin/my_command

donde my_command es un archivo ejecutable (chmod 755 my_command ).

Alternativamente, puede colocar una línea como esta

   /home/my_name/bin/my_command

en /etc/rc.local, y este se ejecutará en último lugar. En cualquier caso, recuerde que está utilizando un entorno raíz, no el suyo. También por este motivo, es mejor utilizar rutas absolutas.

Si está en un systemd distro (Arch Linux, Fedora 19,...) la primera opción (crontab) sigue siendo válida, mientras que la segunda (/etc/rc.local) ya no existe. En este caso, debe aprender cómo iniciar un servicio para que lo ejecute systemctl , pero esto puede ser más de lo que esperaba con su simple pregunta.


Si su sistema ejecuta una versión de cron que lo admita (específicamente Vixie cron), puede usar @reboot en un trabajo cron.

Esta es una de las 8 cadenas especiales que admite.

Citando el crontab(5) página man (de mi sistema Ubuntu 12.04):

En lugar de los primeros cinco campos, puede aparecer una de las ocho cadenas especiales:

string         meaning
------         -------
@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

Tenga en cuenta que el inicio, hasta el @reboot se refiere, es el momento en que el cron(8) inicio del demonio. En particular, puede ser antes de que se iniciaran algunos demonios del sistema u otras instalaciones. Esto se debe a la secuencia de orden de arranque de la máquina.

Esto está lejos de ser el único forma de ejecutar algo en el momento del arranque, pero es una alternativa.


Prácticamente todas las variantes de Linux (que se remontan a mucho, mucho tiempo) tienen un archivo /etc/rc.local que se ejecuta al inicio; simplemente puede agregarle el comando.

Dicho esto, ni siquiera necesitas hacer eso. La forma "correcta" sería modificar / agregar la línea kernel.sysrq =1 en /etc/sysctl.conf


Linux
  1. ¿Cómo ejecutar un comando como administrador del sistema (raíz)?

  2. ¿Cómo ejecutar un comando dentro de un contenedor Systemd en ejecución?

  3. ¿Cómo puedo ejecutar una función desde un script en la línea de comandos?

  4. ¿Cómo puedo excluir un directorio del comando ls?

  5. linux:cómo ejecutar un comando en un directorio dado

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

Cómo ejecutar el comando Sudo sin contraseña

Cómo ejecutar comandos de Linux en segundo plano

Cómo iniciar en la línea de comandos de Linux

Cómo ejecutar un comando periódicamente en Linux usando Watch

¿Cómo puedo ejecutar correctamente los scripts de línea de comandos de Perl one liner?