Arch Linux executa script um minuto após a inicialização

Arch Linux executa script um minuto após a inicialização

Eu configurei uma ponte entre eth0 e wlan0 com netctl. Funciona bem se eu disser para configurar eth0 e wlan0 na inicialização e, em seguida, iniciar manualmente a ponte após a inicialização. Se eu disser à ponte para iniciar automaticamente também, por algum motivo, o adaptador wlan não se conecta a um ponto de acesso. Portanto, preciso que o "netctl start bridge" seja executado cerca de um minuto após a inicialização de todo o sistema. Alguma ideia de como devo fazer isso?

PS. Este é um sistema headless como nenhum xorg, portanto executá-lo na inicialização do xorg não funcionará.

Responder1

Você pode usar temporizadores do systemd para executar o script um minuto após a inicialização.

Primeiro, crie o arquivo de serviço (/etc/systemd/system/myscript.service):

[Unit]
Description=MyScript

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

Em seguida, crie um cronômetro (/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

Agora habilite e execute:

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

Responder2

Arch usa systemd para gerenciar processos de inicialização (daemons e similares também).

Você pode escrever um script que simplesmente execute o comando desejado ou durma por um minuto e depois execute. Em seguida, adicione-o ao processo de inicialização com as instruções no

wiki

se você adicionar um sono:

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

Deve funcionar perfeitamente bem. O Systemd deve gerar outro processo ao executar seu script, para não travar o sistema.

Responder3

Se você quiser algo simples e sem bloqueio, adicione o seguinte ao /etc/rc.local:

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

informação relacionada