Я работаю над переносом моей текущей настройки сервера на новое оборудование и переходом с ubuntu karmic koala на lucid lynx. В настоящее время я использую gw6c (скомпилированный с веб-сайта gogo6, а не версию из репозиториев), чтобы получить доступ по ipv6 для своих систем. В системе karmic koala я использовал простой скрипт 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, но, по-видимому, не запускается при загрузке. - его статус остановлен / ожидает. Он работает нормально (и возрождается), когда запускается иначе. Есть идеи о том, где я ошибаюсь, и что было бы подходящим аргументом в пользу начала?
РЕДАКТИРОВАТЬ: точная ошибка: «init: основной процесс gw6c (xxx) завершился со статусом 8», за которым следует возрождение процесса, причем xxx является PID, который я подозреваю. Я также наполовину подозреваю, что это потому, что gw6c запускается раньше, чем сеть, и мне нужно, чтобы мой eth0 был включен до того, как gw6c будет
По-видимому
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
кажется работает
Поместите скрипт, запускающий gw6c, в
/etc/network/if-up.d
Все сценарии в этой папке запускаются после появления интерфейса. Если вы хотите, чтобы он запускался только при появлении eth0, отредактируйте запись eth0 в
/etc/network/interfaces
и добавить вызов в скрипт
iface eth0 inet dhcp
up /etc/init.d/gw6c restart
Я бы также предложил добавить сценарии предварительного отключения для отключения туннеля до того, как интерфейс перейдет в автономный режим.
Как только вы это сделаете и найдете работающую реализацию, опубликуйте ее здесь, чтобы я мог ее использовать. У меня на ноутбуке есть gw6c, но мне пока лень автоматизировать его.
Спасибо, "Подмастерье выродка" :) Вы сэкономили мне много времени. Я боролся с /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
Слегка модифицированный ("уровень запуска" и команда exec) скрипт сделал свое дело! :) :) :)
Отсюда: http://upstart.ubuntu.com/cookbook/#single-job-instance-running-without-pid
description "Uncomplicated firewall"
# Make sure we start before an interface receives traffic
start on (starting network-interface
or starting network-manager
or starting networking)
stop on runlevel [!023456]
console output
pre-start exec /lib/ufw/ufw-init start quiet
post-stop exec /lib/ufw/ufw-init stop