Arch Linux запускает скрипт через минуту после загрузки

Arch Linux запускает скрипт через минуту после загрузки

Я настроил мост между eth0 и wlan0 с помощью netctl. Он отлично работает, если я говорю ему настроить eth0 и wlan0 при запуске, а затем вручную запустить мост после загрузки. Если я также говорю мосту запуститься автоматически, хотя по какой-то причине адаптер wlan не подключается к точке доступа. Поэтому мне нужно, чтобы "netctl start bridge" запускался примерно через минуту после того, как вся система загрузится. Есть идеи, как это сделать?

P.S. Это безголовая система, так как в ней нет xorg, поэтому запуск ее при запуске xorg не сработает.

решение1

Вы можете использовать таймеры systemd для выполнения скрипта через минуту после загрузки.

Сначала создайте файл службы (/etc/systemd/system/myscript.service):

[Unit]
Description=MyScript

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

Затем создаем таймер (/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

Теперь включите и запустите его:

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

решение2

Arch использует systemd для управления процессами запуска (а также демонами и т. п.).

Вы можете написать скрипт, который просто выполняет нужную вам команду, или поспать минуту, а затем выполнить. Затем добавьте его в процесс загрузки с инструкциями на

вики

если добавить сон:

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

Это должно работать отлично. Systemd должен запустить другой процесс, когда он выполняет ваш скрипт, так что это не должно привести к зависанию вашей системы.

решение3

Если вам нужно что-то простое и неблокирующее, добавьте следующее в /etc/rc.local:

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

Связанный контент