web-dev-qa-db-ja.com

netcfgを使用してワイヤレス接続が確立されたら、プログラムを起動します

キャプティブポータルに透過的にログインするプログラムを作成しました。そのため、 netcfg を使用してワイヤレス接続が確立されたときに、これを実行したいと思います。 POST_UPを使用して、構成ファイルでこの接続ごとに行うことは可能ですが、これには、現在存在するすべての接続、および将来作成される可能性のある接続に追加する必要があります。これは、私の場合は実行できません。状況。また、デーモンとしてネットワーク接続をポーリングしたくありません。 man netcfg-profiles でこれを行うことについての情報は見当たりません。

これにどのようにアプローチすればよいですか? netcfgには、POST_UPを複数の接続に適用できるようにする組み込み構成がありますか?

すべての接続(有線を含む)にも適用できますが、可能であれば避けたいと思います。

5
Chris Down

インターフェイス固有の{PRE、POST} _ {UP、DOWN}コマンドは、/ etc/network.d/interfaces/$ DEVICEで定義できます。$ DEVICEはネットワークデバイス名です。したがって、インターフェイスごとにフックが必要ですが(実際には、必要なことを示しています)、接続ごとにフックは必要ありません。

たとえば、私のインターフェイスフォルダには次のファイルがあります。

/etc/network.d/interfaces/_functions:

notify() {
dev="$1"
state="$2"
/usr/local/sbin/xuserrun /usr/local/sbin/network_notification "$dev" "$state"
return 0
}

/etc/network.d/interfaces/ {wlan0、eth0}(どちらも同じ内容):

source /etc/network.d/interfaces/_functions
POST_UP="notify ${INTERFACE} up"
PRE_DOWN="notify ${INTERFACE} down"

これにより、スクリプトが実行され、接続が確立/切断されたときに通知するポップアップ通知が送信されます。これらのフックはrootユーザーとして実行されることに注意してください。 xuserrunコマンドは github で使用可能であり、現在のXユーザー名を判別し、次のコマンドを実行する前にそのユーザーに切り替えます。

1
kbeta