початкові сценарії: виконайте завдання після того, як мережа піднімається


23

Я працюю над переміщенням свого поточного налаштування сервера на новіше обладнання та переміщенням з карбо-коалу ubuntu на виразний рись. В даний час я використовую gw6c (складений з веб-сайту gogo6, на відміну від версії із сховищ), щоб отримати доступ до ipv6 для моїх систем. У кармічній системі коала я використовував простий скрипт init.d, щоб запустити клієнт ipv6

 #! /bin/sh
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf

Я зрозумів, оскільки це працює на будь-якому рівні запуску, це повинно бути перекладено на

respawn
console none

start on startup

stop on shutdown

script
exec /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
emit free6_ipv6_started
end script

це добре працює, починаючи з initctrl, але, мабуть, не вдається запуститись, коли він завантажується. - його статус зупинка / очікування. Це добре працює (і відновлюється), коли починається інакше. Будь-які ідеї про те, де я помиляюся, і що було б відповідним суперечкою "початок"?

EDIT: точна помилка: "init: gw6c основний процес (ххх) закінчився статусом 8", після чого повторно поширюється процес, при цьому xxx є підозрюваним PID. Я також наполовину підозрюю, що це стає причиною того, що gw6c запускається до того, як буде створено мережу, і мені потрібен мій eth0, перш ніж gw6c

Відповіді:


27

Мабуть

respawn
console none

start on (local-filesystems and net-device-up IFACE!=lo)
stop on [!12345]

script
chdir /usr/local/gw6c/bin/

exec /usr/local/gw6c/bin/gw6c 
end script

здається, працює


Так, я нещодавно написав декілька, які використовують мережеві пристрої та мережеві пристрої вниз, які працюють ідеально.
Енді Шелам

я не знайшов його ніде в документації. хтось із місцевого списку розсилки допоміг мені
Journeyman Geek

Це саме те, що я шукав. Досі його немає в документації на початку, де я міг би знайти.
Натан

4

Помістіть сценарій, починаючи з gw6c

/etc/network/if-up.d

Усі сценарії в цій папці запускаються після появи інтерфейсу. Якщо ви хочете, щоб він запускався лише тоді, коли з'явиться eth0, відредагуйте запис eth0

/etc/network/interfaces

і додати виклик до сценарію

iface eth0 inet dhcp
  up /etc/init.d/gw6c restart

Я б також запропонував додати сценарії попереднього вниз для відключення тунелю до того, як інтерфейс вийде з режиму офлайн.

Як тільки ви це зробите і знайдете роботу, яка працює, опублікуйте її тут, щоб я міг її використовувати. У мене на ноутбуці gw6c, але я поки що ледачий, щоб автоматизувати його.


Колишній опублікований мною сценарій працює досить добре - хоча мені потрібно вручну перезапустити його, якщо моє з’єднання скинеться - це для запуску, який за замовчуванням є у виразному рисі.
Подорож Гек

1

Дякую "Подорожник-мандрівник" :) Ти врятував мені багато часу. Я боровся зі сценарієм /etc/init.d/gw6c, пробуючи деякі таймінги з "sysv-rc-conf -p" і цікавився, чому він не працює (він же WTF?).

respawn
console none

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

script

exec /etc/init.d/gw6c start
end script

Трохи модифікований ("runlevel" та exec команда) сценарій зробив цю роботу! :) :) :)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.