Чи кожен сценарій розташований у /etc/network/if-up.d, коли виконується інтерфейс?


12

Чи всі сценарії в /etc/network/if-up.d запущені, коли піднімається мережевий інтерфейс?

Якщо так, для чого потрібна команда post-up у файлі інтерфейсів?


1
Весь вміст папок " .d", як правило, виконується. Деякі з них насправді потребують розширення назви файлу " .sh". Усі файли повинні бути виконаними.
колипто

Відповіді:


14

Так, загалом, запускається будь-який скрипт, який позначений як виконуваний і розміщений у цій папці. Файли є обмежені певним набором імен, оскільки використовуються запущені частини.

Це post-upте ж саме, що і використання up. Розміщення сценарію в if-up.d те саме, що просто використовувати a, post-upякий вказує на сценарій або команду десь в іншому місці. Зазвичай ви використовуєте | up-post-up, коли вам просто потрібно було виконати одну команду для одного інтерфейсу. Коли у вас є щось складніше, ви створили б сценарій.

людина інтерфейси

...
up command

post-up command
      Run  command  after  bringing the interface up.  If this command
      fails then ifup aborts, refraining from marking the interface as
      configured  (even  though it has really been configured), prints
      an error message, and exits with status 0.   This  behavior  may
      change in the future.
...
There  exists  for  each  of  the  above  mentioned options a directory
/etc/network/if-<option>.d/ the scripts in which are run (with no argu-
ments) using run-parts(8) after the option itself has been processed.

людина біг-частини

run-parts  runs  all  the  executable  files  named  within constraints
described below,

If  the  --lsbsysinit  option  is not given then the names must consist
entirely of upper and lower  case  letters,  digits,  underscores,  and
hyphens.
...
Files are run in the lexical sort  order  of  their  names  unless  the
--reverse  option  is given, in which case they are run in the opposite
order.

1
Тож якщо ви хочете, щоб сценарій запускався лише після того, як інтерфейс буде запущений, і йому потрібні речі в папці if-up.d, щоб бути готовим, вам доведеться його назвати, щоб він потрапив у лексичний порядок після команди, необхідної для роботи або помістити в інший каталог і запустити за допомогою команди post-up. Це правильно звучить?
Спіг

1
Так, я так вірю.
Зоредаче

1
Така приємна детальна відповідь. Навіть через 10 років все ще забезпечують розуміння.
Xofo

Вам дійсно доводиться ретельно читати підручну сторінку запуску частин, щоб визнати, що навіть сценарії з інакше правильним іменем файлу з використанням розширення .sh не запускаються. Цитата: "... це дуже допомогло б, якби була якась інформація про пропуск сценарію через крапку. Я втратив багато часу на усунення несправностей ... заява" ... імена повинні складатися повністю з верхнього та нижнього регістру літери, цифри, підкреслення та дефіси. ' Я недостатньо прочитав його двічі, і це не допомогло мені зрозуміти, де моя проблема. Слід чітко записати, що сценарії з крапками пропускаються ".
ChrisW

Ця "помилка" - "Не виправлено" в Debian: run-parts не запускає скрипт із розширенням sh.gs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
ChrisW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.