今日はザウルスネタ。ザウルスにPHS通信カードを挿して使っている人は今でも多いと思う。それでそのPHSデータ通信なのだが、データが流れていないとデータカード内部でスリープ状態にされてその復帰・再接続に時間がかかり速度が出ないらしい(表面的にはずっと接続を続けているようにみえる)。それで、何秒かに1回Pingを打ってスリープさせないフリーソフトがある。AirKeeperモドキである。
たしかにこのAirkeeperモドキをインストールすると、ブラウザでアクセスする際のタイムラグのようなものがなくなり、キビキビとアクセスするようになる。リンクをクリックしてから接続しに行く時間が短くなるし、同じページの中に違うサーバーから読み込んでいるような場合、次々と接続していくようになる。画像の転送速度だけを測るような回線速度測定サイトでは数値は変わらないが、通常の使い方でクリックしてからページ全体が表示されるまでの速さが短くなる。ブラウザだけでなくほかの通信するソフトでも速い。
しかし、一つ気になる点があった。ダイヤルアップでPPP接続するとAirkeeperモドキが自動的に起動するのはいいのだが、切断してもAirkeeperモドキがずっとプロセスに残っているのである。これが気になるのでずっとAirkeeperモドキは使ってなかった。切断、接続を繰り返してもAirkeeperモドキが二重三重に起動するわけではないので気にしなければよいのだが…。
検索すると、同じようなひとがおられるようで、NetHelperAppletでAirkeeperモドキを起動・停止すればいいという情報があった。
[URL]
しかし、この設定では接続時にAirkeeperモドキが2個起動して、切断時にはそのうちの1つが停止するだけであった。Airkeeperモドキインストール時に起動するようにどこかで呼び出されている方のプロセスがそのままのようで、これだと意味がない(AirkeeperモドキをインストールしてもPPP接続時にAirkeeperが自動で起動しない人はNetHelperAppletで制御するのがいい)。少し調べたが、Airkeeperモドキがどこで呼び出されているのか私には分からなかった。
さらに検索すると、やはり同じような人がおられるようで、
[URL]のレス番号429で改良が提案されていた。レス番号504と509で改良版が完成していた。このレスはAirkeeperモドキのリリースよりも前のようなのだが、Airkeeperモドキにはこの改良は反映されていないようだった。
429 :いつでもどこでも名無しさん :03/01/24 23:02 ID:??? AirKeeperモドキ改良希望です。 PPP切断するなどでネットワークがunreachableになったときに 無限ループから抜けたいのですが、どうしたらいいでしょう。 pingがエラーを出してくるのでうざいです。 ■airkeeper.sh #!/bin/sh while true do ping -q -c 1 192.168.0.1 >/dev/null sleep 1s done exit 0
504 :いつでもどこでも名無しさん :03/01/25 16:57 ID:???
>>429
pingの戻り値を判定するようにしてみました
-------------------------------------------------
#!/bin/sh
host=192.168.0.1
end(){
echo "AirKeeper terminated"
exit 0
}
trap end 1 2 3 15
while :
do
ping -c 1 $host >/dev/null 2>&1
rc=$?
if [ $rc -ne 0 ]; then
echo "AirKeepr abnormal end (rc=$rc)"
exit &rc
fi
sleep 1
done
-------------------------------------------------
505 :429 :03/01/25 17:25 ID:??? >>504 試してみました。完璧です。PPP落とした瞬間に動作止まります。 厨房スクリプトを改造してくれてありがとう。
506 :429 :03/01/25 17:49 ID:??? >>504 イイと思ったのですが、この判定方法だと、ちょっと電波状態が 悪いだけでTerminateしてしまいます。 PPPを切断した状態だと、pingからは、以下のようなエラーが返 ってきます。 > Network is unreachable これを判定してループから抜けるようにできないでしょうか。
セコメントをする