LINUX.ORG.RU
ФорумTalks

Как вам такой формат файлов для unit'ов системы инициализации?

 , ,


0

2

http://pastebin.com/tGBZFD3V

Нужно ли такое?

Секция [user-mod] не является основной. Но при помощи неё администратор системы может привязать старт демона к таким условиям и событиям как наличие определённых файлов, монтирование каталогов, подключение usb устройств, дисков и сетевых соединений Такой механизм как проверка наличия файла позволяет так же усложнять условия при помощи собственных скриптов которые создадут указанный файл. Однако для большинства пользователей потребности в наполнении этой секции условиями не будет.

[daemon]
# Описание демона
name=test
role=test-daemon

cmd-daemin="/etc/init.d/test"

options-add=start
options-add=stop
options-add=restart
options-add=reload
options-add=status


prioritet=user-mod
# Пользовательские модификации файла приоритетны

#prioritet=auto-mod
## автоматические модификации имеют приоритет над пользовательскими
## Обычно закомментировано.


[user-mod]
# Модификации пользователя, приоритетны над системными.

	[dep-hard]
	#Жёсткие зависимости
	#Без них демон не стартует
	
		# зависимость от наличия в сети определённых компьютеров
		dep-host=ipv4=8.8.8.8
		dep-host=name=localhost

		dep-file-absolute=/mnt/local/test
		#dep-file-absolute= ИГНОРИРУЕТ прификс WorkDir, НЕ РЕКОМЕНДУЕТЬСЯ ИСПОЛЬЗОВАТЬ.
		# Трудно представить себе ситуацию в которой это понадобиться, 
		# но я решил оставить эту функцию для повышения гибкости. 
		
		# Зависимость от точки монтирования
		dep-mount-point=/mnt/local
		#Никогда не завершать строку символом / иначе используемый для неё grep фильтр работать не будет
		# Пример /dev/sda6 on /mnt/local type ext4 (rw,relatime,data=ordered)

		# Зависимость от маршрута
		# Пока реализовывать не буду, хватит зависимости от хоста.
		# Зависимость от поднятого интерфейса
		dep-iface=eth0
		# Использует /sbin/ifconfig eth0 | grep "inet addr"
		# Если появилась строка длиннее одного символа, значит интерфейс поднят. Конечно костыльное решение.
		# Потом придумаю другой метод
		
		
		# Зависимость от подключенного тома по UUID
		dep-volume-uuid=71ED-3670
		# Анализирует вывод команды blkid

		# Зависимость от подключенного тома по метке
		dep-volume-label=flash
		# Анализирует вывод команды blkid
		


		# Зависимость от подключенных USB устройств. Просматривает их список используя команду lsusb
		[dep-usb]
			#Описание устройства. Следует соблюдать регистр букв в ID, а номер шины указывать в формате 000
			
			bus=005
			# сформирует фильтр grep "Bus 005"
			
			id=0a5c:2101
			# сформирует фильтр grep "ID 0a5c:2101"
			
			name=Broadcom Corp. BCM2045 Bluetooth
			# формирует фильтр grep "Broadcom Corp. BCM2045 Bluetooth", 
			# вообще возможно использовать в качестве произвольного фильтра, 
			# но во избежании в будущем проблем с совместимостью при изменении 
			# механизма получения списка устройств, не рекомендуется использовать не по назначению.
		[/dep-usb]
	[/dep-hard]

[/user-mod]


[auto-mod]
# Модификации вносимые автоматическими программами настройки, обычно менее важны чем пользовательские
# Однако можно установить для них высокий приоритет.
[/auto-mod]


[system]
# Системные установки, не рекомендуется вручную модифицировать
	run-level=1
	#Уровень выполнения на случай невозможности разрешения зависимостей

	[dep-hard]
	#Жёсткие зависимости
	#Без них демон не стартует
		
		# Зависимость от других демонов
		dep-unit=main_daemon
		dep-unit=net_fs
		
		
		# зависимость от наличия определённых файлов
		dep-file=/etc/test.conf
		#dep-file= подставляет прификс WorkDir, обычно это корневой каталог, 
		#но иногда это может быть например /home/stas/tmp/root/
		#путь следует указывать начиная с /, этот символ будет автоматически отсечён. Не указывать его нельзя.
		
		


		
	[/dep-hard]


[/system]

Ответ на: комментарий от rezedent12

Я их не понял. Ибо английский знаю плохо.

Перед тем, как начать программировать - английский следует изучить.

kir2yar
()

Слишком мало рака, лучше xml.

Lavos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.