|
次のページ
前のページ
目次へ
13. 5 番目の例: XmDipmon
XmDipmon はインターネット接続の状態を表示するボタンを画面に出す気の利 いた小さなプログラムです。このプログラムは接続が切れると光ってビープ音 を出します。こういった事態は田舎の電話システムではとてもよく起こります。 残念ながら、XmDipmon は dip と組み合わせてしか使えないので、 接続に chat を使っている人達(こちらが多数派なのですが)の役に は立ちません。 XmDipmon の構築は難しくありません。XmDipmon は Motif ライブラリ をリンクしますが、Lesstif をリンクしてもうまく構築できます。 難しいのは chat を使っている時にもこのパッケージが動作するよ うに変えることです。これは実際のソースコードの改造を含むので、 プログラミングの知識がある程度必要です。
-pidfile オプションを使うと、起動時に別のファイルをチェックす るようにプログラムに指示できます。このファイルは、chat ログイン が正常にできている間だけ存在するものでなければなりません。すぐ思い付く 候補としてはモデムのロックファイルがあります。したがって、 xmdipmon -pidfile /var/lock/LCK..ttyS3 としてプログラムを起動すればよいかもしれません(この例ではモデムは COM ポート 4 番、ttyS3 にあるものとしています)。しかし、この方法で解決する のは問題の一部分だけです。プログラムは dip デーモンを連続的に 監視するので、このプロセスではなく chat や ppp に対 応するプロセスをポーリングするように動作を変えてやる必要があります。 ソースファイルは 1 つだけですし、幸いなことに詳しいコメントが付けられ
ています。
ここは頑張って調べるところです。関数の中身を読んでみましょう…。
問題になるのは 2383 行目です:
このコードは dip デーモンのプロセスが動作中かどうかを調べています。 ここで、どうすれば dip でなく pppd デーモンを監視するように変更できる でしょうか? pppd の man ページを読んでみましょう:
そこで、
修正したパッケージを再構築します。構築は問題ないはずです。次に、新しい
コマンドライン引数をテストします。これは見事に動作します。ISP への
XmDipmon は Ripley Linux Tools から入手できます。 次のページ 前のページ 目次へ |
[ |