Arch Linux ejecuta el script un minuto después del arranque

Arch Linux ejecuta el script un minuto después del arranque

He configurado un puente entre eth0 y wlan0 con netctl. Funciona bien si le digo que configure eth0 y wlan0 al inicio y luego que inicie manualmente el puente después de que arranca. Si le digo al puente que se inicie automáticamente también, por alguna razón, el adaptador WLAN no se conecta a un punto de acceso. Por lo tanto, necesito que "netctl start bridge" se ejecute aproximadamente un minuto después de que todo el sistema haya terminado de iniciarse. ¿Alguna idea de cómo debería hacer esto?

PD. Este es un sistema sin cabeza, ya que no está en xorg, por lo que ejecutarlo al iniciar xorg no funcionará.

Respuesta1

Puede usar temporizadores systemd para ejecutar el script un minuto después del arranque.

Primero, cree el archivo de servicio (/etc/systemd/system/myscript.service):

[Unit]
Description=MyScript

[Service]
Type=simple
ExecStart=/usr/local/bin/myscript

Luego cree un temporizador (/etc/systemd/system/myscript.timer):

[Unit]
Description=Runs myscript one minute after boot

[Timer]
# Time to wait after booting before activation
OnBootSec=1min
Unit=myscript.service

[Install]
WantedBy=multi-user.target

Ahora habilítelo y ejecútelo:

# systemctl enable myscript.timer
# systemctl start myscript.timer

Respuesta2

Arch usa systemd para gestionar los procesos de inicio (también demonios y similares).

Puede escribir un script que simplemente ejecute el comando que desee, o dormir durante un minuto y luego ejecutarlo. Luego agréguelo al proceso de arranque con las instrucciones en el

wiki

si agregas un sueño:

#!/bin/sh
sleep 60 # one min
netctl start bridge

Debería funcionar perfectamente bien. Systemd debería generar otro proceso cuando ejecute su script, por lo que no debería bloquear su sistema.

Respuesta3

Si desea algo simple que no bloquee, agregue lo siguiente a /etc/rc.local:

( sleep 60 && /path/to/command_or_script [opts] ) &

información relacionada