現在のサーバー設定を新しいハードウェアに移動し、ubuntu karmicコアラからlucid lynxに移行しています。現在、システムのipv6アクセスを取得するために、gw6c(リポジトリのバージョンではなく、gogo6 Webサイトからコンパイル)を使用しています。 karmicコアラシステムで、単純な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が起動する原因であると半分疑っています。gw6cが起動する前にeth0を起動する必要があります
どうやら
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がありますが、自動化するのが面倒です。
「The Journeyman geek」に感謝します:)あなたは私に多くの時間を節約してくれました。私は/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