Создание списка автозагрузки

После всех установок и настроек я с ужасом заметил что файл автозагрузки /opt/.bootlocal.sh распух и стал напоминать венигрет из всяческих команд инициализации интерфейсов, монтирования дисков, создания папок и файлов, применения правил IPTABLES, запуска приложений и служб. И ещё много-много всего, разбираться в котором становилось всё сложнее и сложнее. Настало время навести порядок. Признаюсь сразу, идея эта не нова, и позаимствована из службы автозапуска Alpine Linux. Но она для меня оказалась настолько удобной, что я решил перенести эту службу в TCL. Служба заданий автозапуска представляет собой отдельную папку, где располагаются скрипты с порядковыми именами и расширением *.start для автозагрузки, и *.stop - для заданий которые должны выполняться при завершении работы. К примеру бэкап настроек. Порядковые номера назначаются для строгой очередности следования скриптов в процессе выполнения.

Для реализации подобной службы я воспользовался возможностями скриптового программирования на BASH. Сначала создадим папку для скриптов автозапуска /opt/onboot/. Затем открываем /opt/.bootlocal.sh и удалив всё содержимое (предварительно сохранив в другом месте), оставляем лишь небольшой код:

/opt/.bootlocal.sh

#!/bin/sh
#
 for file in `find /opt/onboot/ -name "*.start" -type f | sort -d`
 do sudo $file > /dev/null 2>&1
 done

Всё что эта программа делает при загрузке - обходит все скрипты *.start в папке /opt/onboot/ в возрастающем порядке имён файлов и выполняет их. Теперь перейдя в дирректории /opt/onboot/ мы можем создать порядок в нашем списке заданий автозагрузки. Для себя я создал следующий список скриптов:

/opt/onboot

11_eth.start
13_wlan.start
15_br.start
21_netconf.start
23_ip4tables.start
31_mount.start
33_file_oper.start
41_loadtcz.start
81_services.start
83_slowcom.start
91_netservises.start
99_final.start

Как видно все скрипты интуитивно понятно подписаны и проиндексированы в соответствии с очередностью их запуска. В начале запускаются и конфигурируются сетевые интерфейсы, создается мостовое подключение, применяются сетевые правила, монтируются разделы, применяются файловые операции, загружаются отложеные расширения, запускаются службы.. и так далее. В этом случае намного сложнее запутаться и наделать ошибок. А так как все эти изменения находятся в папке /opt/ то они автоматически сохранятся при следующем бэкапе. Просто не забудьте выполнить:

sudo filetool.sh -b

ранее: "Создаем свои расширения"далее: "Гостевой Wi-Fi"

Обсуждение темы ещё не открыто. Вы можете быть первым.


Оставить комментарий

Имя:

Сообщение: