Lines 8-15
Link Here
|
8 |
|
8 |
|
9 |
<sections> |
9 |
<sections> |
10 |
|
10 |
|
11 |
<version>7.0</version> |
11 |
<abstract> |
12 |
<date>2006-08-30</date> |
12 |
Если вы считаете себя смелым, то вы можете добавить собственные функции к работе |
|
|
13 |
сети. |
14 |
</abstract> |
15 |
|
16 |
<version>8.0</version> |
17 |
<date>2007-05-07</date> |
13 |
|
18 |
|
14 |
<section> |
19 |
<section> |
15 |
<title>Стандартные функции-обработчики</title> |
20 |
<title>Стандартные функции-обработчики</title> |
Lines 31-37
Link Here
|
31 |
</p> |
36 |
</p> |
32 |
|
37 |
|
33 |
<p> |
38 |
<p> |
34 |
Возвращаемыое значение функций <c>postup()</c> и <c>postdown()</c> игнорируется, |
39 |
Возвращаемое значение функций <c>postup()</c> и <c>postdown()</c> игнорируется, |
35 |
так как показываемая ими ошибка не обрабатывается. |
40 |
так как показываемая ими ошибка не обрабатывается. |
36 |
</p> |
41 |
</p> |
37 |
|
42 |
|
Lines 43-59
Link Here
|
43 |
|
48 |
|
44 |
<pre caption="Примеры функций до/после запуска/останова"> |
49 |
<pre caption="Примеры функций до/после запуска/останова"> |
45 |
preup() { |
50 |
preup() { |
46 |
<comment># Проверка соединения интерфейса перед его запуском. Она |
51 |
<comment># Проверка соединения интерфейса перед его запуском. Она работает лишь |
47 |
# работает лишь с некоторыми сетевыми адаптерами и требует наличия |
52 |
# с некоторыми сетевыми адаптерами и требует наличия установленного пакета |
48 |
# установленного пакета mii-diag.</comment> |
53 |
# ethtool.</comment> |
49 |
if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then |
|
|
50 |
ewarn "Интерфейс ${IFACE} не подключен, прерывание запуска" |
51 |
return 1 |
52 |
fi |
53 |
|
54 |
<comment># Проверка соединения интерфейса перед его запуском. Она |
55 |
# работает лишь с некоторыми сетевыми адаптерами и требует наличия |
56 |
# установленного пакета ethtool.</comment> |
57 |
if ethtool ${IFACE} | grep -q 'Link detected: no'; then |
54 |
if ethtool ${IFACE} | grep -q 'Link detected: no'; then |
58 |
ewarn "Интерфейс ${IFACE} не подключен, прерывание запуска" |
55 |
ewarn "Интерфейс ${IFACE} не подключен, прерывание запуска" |
59 |
return 1 |
56 |
return 1 |
Lines 64-72
Link Here
|
64 |
} |
61 |
} |
65 |
|
62 |
|
66 |
predown() { |
63 |
predown() { |
67 |
<comment># Назначение этого сценария - проверить наличие корня NFS |
64 |
<comment># Назначение этого сценария - проверить наличие корня NFS и в этом случае |
68 |
# и в этом случае предотвратить останов интерфейсов. Заметьте, что |
65 |
# предотвратить останов интерфейсов. Заметьте, что определяя функцию |
69 |
# определяя функцию predown(), вы отменяете существующую логику. |
66 |
# predown(), вы отменяете существующую логику. |
70 |
# Вот она, на случай если все же понадобится...</comment> |
67 |
# Вот она, на случай если все же понадобится...</comment> |
71 |
if is_net_fs /; then |
68 |
if is_net_fs /; then |
72 |
eerror "Корневая ФС смонтирована в сети - останов ${IFACE} невозможен" |
69 |
eerror "Корневая ФС смонтирована в сети - останов ${IFACE} невозможен" |
Lines 78-92
Link Here
|
78 |
} |
75 |
} |
79 |
|
76 |
|
80 |
postup() { |
77 |
postup() { |
81 |
<comment># Эту функцию можно использовать, например, для регистрации в |
78 |
<comment># Эту функцию можно использовать, например, для регистрации в службе |
82 |
# службе динамического DNS. Другой пример - отправка/прием почты после |
79 |
# динамического DNS. Другой пример - отправка/прием почты после |
83 |
# запуска интерфейса.</comment> |
80 |
# запуска интерфейса.</comment> |
84 |
return 0 |
81 |
return 0 |
85 |
} |
82 |
} |
86 |
|
83 |
|
87 |
postdown() { |
84 |
postdown() { |
88 |
<comment># Эта функция приводится в основном для полноты... Я не придумал, |
85 |
<comment># Эта функция приводится в основном для полноты... Я не придумал, что бы |
89 |
# что бы ценное в нее поместить ;-)</comment> |
86 |
# ценное в нее поместить ;-)</comment> |
90 |
return 0 |
87 |
return 0 |
91 |
} |
88 |
} |
92 |
</pre> |
89 |
</pre> |
Lines 104-123
Link Here
|
104 |
|
101 |
|
105 |
<p> |
102 |
<p> |
106 |
Можно определить две функции, вызываемые до и после функции подключения |
103 |
Можно определить две функции, вызываемые до и после функции подключения |
107 |
(associate). При вызове им сначала передается название интерфейса, так |
104 |
(associate). При вызове им сначала передается название интерфейса, так что одна |
108 |
что одна и та же функция может управлять несколькими адаптерами. |
105 |
и та же функция может управлять несколькими адаптерами. |
109 |
</p> |
106 |
</p> |
110 |
|
107 |
|
111 |
<p> |
108 |
<p> |
112 |
Для указания на то, что запуск или останов интерфейса можно продолжать, |
109 |
Для указания на то, что запуск или останов интерфейса можно продолжать, |
113 |
возвращаемое значение функции <c>preassociate()</c> должно быть нулевым |
110 |
возвращаемое значение функции <c>preassociate()</c> должно быть нулевым |
114 |
(успешным). Если <c>preassociate()</c> возвращает ненулевое |
111 |
(успешным). Если <c>preassociate()</c> возвращает ненулевое значение, запуск |
115 |
значение, запуск интерфейса прерывается. |
112 |
интерфейса прерывается. |
116 |
</p> |
113 |
</p> |
117 |
|
114 |
|
118 |
<p> |
115 |
<p> |
119 |
Возвращаемое значение функции <c>postassociate()</c> игнорируется, |
116 |
Возвращаемое значение функции <c>postassociate()</c> игнорируется, так как |
120 |
так как показываемая ей ошибка не обрабатывается. |
117 |
показываемая ей ошибка не обрабатывается. |
121 |
</p> |
118 |
</p> |
122 |
|
119 |
|
123 |
<p> |
120 |
<p> |
Lines 152-159
Link Here
|
152 |
} |
149 |
} |
153 |
|
150 |
|
154 |
postassociate() { |
151 |
postassociate() { |
155 |
<comment># Эта функция приводится в основном для полноты... Я не придумал, |
152 |
<comment># Эта функция приводится в основном для полноты... Я не придумал, что |
156 |
# что бы ценное в нее поместить ;-)</comment> |
153 |
# бы ценное в нее поместить ;-)</comment> |
157 |
|
154 |
|
158 |
return 0 |
155 |
return 0 |
159 |
} |
156 |
} |
Lines 171-181
Link Here
|
171 |
|
168 |
|
172 |
<!-- *$Localization: |
169 |
<!-- *$Localization: |
173 |
target-language: Russian |
170 |
target-language: Russian |
174 |
target-version: 7.0-r1 |
171 |
target-version: 8.0-r1 |
175 |
target-date: 2006-09-25 |
172 |
target-date: 2007-05-11 |
176 |
source-cvs-revision: 1.8 |
173 |
source-cvs-revision: 1.11 |
177 |
translated-by: Alexey Chumakov [achumakov@gentoo.org] |
174 |
translated-by: Alexey Chumakov [achumakov@gentoo.org] |
178 |
edited-by: same |
175 |
edited-by: Azamat Hackinov <azamat.hackimov@gmail.com> |
179 |
|
176 |
|
180 |
note: |
177 |
note: |
181 |
--> |
178 |
--> |