upstartスクリプト:ネットワークが上がった後にタスクを実行する


23

現在のサーバー設定を新しいハードウェアに移行し、ubuntu karmic koalaからlucid lynxに移行しています。現在、システムのipv6アクセスを取得するためにgw6c(リポジトリのバージョンではなく、gogo6 Webサイトからコンパイル)を使用しています。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 main process(xxx)ends with status 8」であり、その後にプロセスが再生成されます。xxxはPID iの疑いがあります。私はこれがネットワークが始まる前にgw6cが起動する原因であると疑っていますが、gw6cが起動する前にeth0が必要です

回答:


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

働くようです


ええ、私は最近、完全に動作するnet-device-upとnet-device-downを使用するいくつかを書きました。
アンディシェラム

私はドキュメントのどこにもそれを見つけませんでした。地元のメーリングリストの誰かが私を助けてくれました
ジャーニーマンオタク

これはまさに私が探していたものでした。それは私が見つけることができるどこでもまだ新興ドキュメントにありません。
ネイサン

4

gw6cで始まるスクリプトを配置します

/etc/network/if-up.d

そのフォルダー内のすべてのスクリプトは、インターフェースが起動した後に実行されます。eth0が起動したときにのみ実行する場合は、eth0エントリを編集します

/etc/network/interfaces

スクリプトに呼び出しを追加します

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

また、インターフェイスがオフラインになる前にトンネルをシャットダウンするための事前ダウンスクリプトを追加することをお勧めします。

それを行って動作する実装を見つけたら、それをここに投稿して使用できるようにします。私はラップトップにgw6cを持っていますが、今のところ自動化するのが面倒です。


私が投稿した元のスクリプトはかなりうまく機能します-接続を自動的にリセットする必要がある場合、手動で再起動する必要があります-これはlucid lynxのデフォルトであるupstart用です。
ジャーニーマンオタク

1

「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コマンド)スクリプトが仕事をしました!:) :) :)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.