LINUX.ORG.RU

Автозапуск скрипта в Arch Linux

 ,


0

2

Установил арч, не могу поставить в автозапуск скрипт для считывания правил iptables. Не нашел вообще какой-либо директории или файла, куда можно было бы его воткнуть.

С модулем для systemd не получилось, после добавления его в автозапуск при выключении стала задержка на 90 секунд, в уменьшении ее в конфиге systemd не вижу смысла, хочется чтобы работало и без этого.

Как можно заставить запускаться скрипт после поднятия сети? В debian-based была для этого идеальная папка

/etc/network/if-pre-up.d/

В арче нет ни ее, ни чего-либо подобного. Это из-за системы инициализаци? Возможно ли как-то сделать, чтобы подобная директория (if-pre-up) появилась и система считывала ее при запуске?

Как можно заставить запускаться скрипт после поднятия сети? В debian-based была для этого идеальная папка
/etc/network/if-pre-up.d/

Вначале пишешь «после поднятия сети», а указываешь директорию «до поднятия сети». Определись.

surefire ★★★ ()

Как можно заставить запускаться скрипт после поднятия сети?

Пишешь для своего скрипта юнит следующего вида:

[Unit]
Wants=network-online.target
After=network.target network-online.target

[Service]
...

[Install]
WantedBy=multi-user.target

Включаешь. Потом читаешь про network-online.target и про то, как оно интегрируется с тем софтом, который у тебя сеть поднимает.

Возможно ли как-то сделать, чтобы подобная директория (if-pre-up) появилась

Крибле-крабле-бумс, не иначе.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от surefire

Ну да, до поднятия, перепутал. Логично поднимать фаервол до включения сети.

Система управления сетевыми интерфейсами, не совсем понял. Видимо это про NetworkManager? До него использовал netctl.

NordeN ()
Ответ на: комментарий от NordeN

И какие конкретно возникли проблемы?

Хочешь, чтобы тебе помогли — потрудись хотя бы внятно описать, с чем тебе нужна помощь. Клещами из тебя вытаскивать никто не будет.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 4)
Ответ на: комментарий от intelfx

Дословно сейчас не вспомню уже, система долго выключалась, появлялась надпись что-то вроде «a stop job is running for id 1000» и висела минуты 2 при каждом выключении. При удалении созданного мной юнита из автозагрузки это прекратилось

NordeN ()
Последнее исправление: NordeN (всего исправлений: 1)
Ответ на: комментарий от NordeN

Дословно сейчас не вспомню уже, система долго выключалась, появлялась надпись что-то вроде «a stop job is running for id 1000» и висела минуты 2 при каждом выключении. При удалении созданного мной юнита из автозагрузки это прекратилось

Скорее всего «a stop job is running for user manager for UID 1000». Выполни

journalctl -p5 -b -1
при помощи Shift+G перейди в конец и смотри на наличие ошибки при завершении работы. От неё уже и надо будет плясать дальше.

najlus ★★★★★ ()
Ответ на: комментарий от najlus

Да, именно эта ошибка была. Я все же решил сделать юнит в systemd, для быстрого выключения поставил watchdog и снизил время до 5 секунд в конфиге /etc/systemd/system.conf.

Все же не совсем уверен что правила поднимаются до старта сети, не подскажете как можно проверить это? В systemctl status время поднятия моего юнита по секундам 1 в 1 с network.target.

NordeN ()