.\" %FreeBSD: src/usr.sbin/pppctl/pppctl.8,v 1.21 2002/07/14 14:45:01 charnier Exp % .\" $FreeBSD$ .Dd June 26, 1997 .Os .Dt PPPCTL 8 .Sh 名称 .Nm pppctl .Nd PPP 制御プログラム .Sh 書式 .Nm .Op Fl v .Op Fl t Ar n .Op Fl p Ar passwd .Xo Oo Ar host : Oc Ns .Ar Port | LocalSocket .Xc .Oo .Sm off .Ar command Oo ; Ar command Oc Ar ... .Sm on .Oc .Sh 解説 このユーティリティは .Xr ppp 8 デーモンのコマンドラインからの制御手段を提供します。 基本的な使い方は、実行中のデーモンを制御する単純なスクリプトを 簡単に書けるようにすることです。 .Pp .Nm ユーティリティは、 .Nm ppp デーモンが listen しているソケットをあらわす 少なくともひとつの引数を必要とします。 詳細については、 .Nm ppp コマンドの .Sq set server を参照して下さい。 ソケットが先頭に '/' を含んでいると、 .Dv AF_LOCAL ソケットとして扱われます。 コロンを含んでいると .Ar host : Ns Ar port の組として扱われ、 それ以外は単にローカルマシン (127.0.0.1) の TCP ポートを 指定したものとみなされます。 DNS 検索を避けたい場合や、 .Pa /etc/services 内に指定されたポートのエントリがない場合には、 .Ar host と .Ar port には数字で指定することができます。 .Pp 残りの引数はすべて、 .Nm ppp デーモンに送られる (複数の) .Ar コマンド を形成するために連結されます。 セミコロン文字はコマンドデリミタとして扱われ、ひとつの .Sq セッション で複数の .Ar コマンド を指定することが可能です。 例えば: .Bd -literal -offset indent pppctl 3000 set timeout 300\\; show timeout .Ed .Pp ほとんどのシェルでは ';' は特殊文字として扱われるので、 エスケープかクォートすることを忘れないようにしてください。 .Pp もし、 .Ar コマンド 引数が与えられなかった場合、 .Nm はインタラクティブモードになります。 ここで、コマンドは標準入力から読み込まれます。 コマンドを読んでいる時に、 .Xr editline 3 が使われていれば、( .Xr editrc 5 で指定した振る舞いで) 行編集が可能になります。 履歴の大きさはデフォルトでは .Em 20 行 です。 .Pp 以下のコマンドラインオプションが利用可能です: .Bl -tag -width Ds .It Fl v .Nm ppp デーモンに送られたデータ、 .Nm ppp デーモンから受け取ったデータをすべて表示します。 .Nm は通常、受け取った非プロンプト行のみ表示します。 このオプションはインタラクティブモードでは無視されます。 .It Fl t Ar n 接続時のデフォルトの 2 秒の代わりに .Ar n をタイムアウトの値として用います。 これは (ダイヤルアップも含む) 遅いリンク上でデーモンを制御しようとする 場合に必要かもしれません。 .It Fl p Ar passwd .Nm ppp デーモンが必要とするパスワードを指定します。 このスイッチが指定されないと、 .Nm は .Nm ppp への接続が成功した時にパスワードの入力を促します。 .El .Sh 使用例 .Nm ppp を .Fl auto モードで実行する場合、 .Nm は多くの仕事を自動化するのに利用できます (もちろん、実際に .Nm ppp をインタラクティブモードを除くどんなモードでも制御することができます)。 .Xr ps 1 によりあなたの秘密がもれてしまう可能性のために、 .Fl p オプションは (たとえスクリプトが他の人に読めないようになっていたとしても) お勧めできません。 .Pp .Nm への簡単で安全なアクセスを提供するもっとも良い方法は、 .Pa /etc/ppp/ppp.conf (の正しいセクション) に以下のようにローカルサーバソケットを作成することです: .Bd -literal -offset indent set server /var/run/internet "" 0177 .Ed .Pp これは、 .Nm ppp を実行したユーザだけにアクセスできるように、 パスワード無しでパーミッションが srw------- の ローカルドメインソケットを作成するように .Nm ppp に指示します。より詳しい解説はマニュアルページ .Xr ppp 8 を参照してください。 .Pp このようにするといくつかのお気楽スクリプトが作成可能になります。 インターネットに接続するには: .Bd -literal -offset indent #! /bin/sh test $# -eq 0 && time=300 || time=$1 exec pppctl /var/run/internet set timeout $time\\; dial .Ed .Pp 切断するには: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet set timeout 300\\; close .Ed .Pp 接続されているかどうか確かめるには: .Bd -literal -offset indent #! /bin/sh pppctl -p '' -v /var/run/internet quit | grep ^PPP >/dev/null if [ $? -eq 0 ]; then echo Link is up else echo Link is down fi .Ed .Pp このような汎用スクリプトも作成可能です: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet "$@" .Ed .Pp ダイヤルオンデマンドも .Nm を使って制御可能です。 .Nm ppp をずっと動作させながらも、 毎日 8pm から 8am まではダイヤルアウトを防ぎたいとします。 また、8pm にアクティブな接続は、 閉じられるか自然にタイムアウトするまでは保持したいとします。 .Pp .Xr cron 8 エントリとして 8pm に .Bd -literal -offset indent pppctl /var/run/internet set filter dial 0 deny 0 0 .Ed .Pp を実行すると、これ以降のダイヤル要求をすべて防ぎ、8am のエントリ .Bd -literal -offset indent pppctl /var/run/internet set filter dial -1 .Ed .Pp は、再度ダイヤル要求を許可します。 .Sh 環境変数 以下の環境変数が、インタラクティブモード中の .Nm によって理解されます: .Bl -tag -width XXXXXXXXXX .It Dv EL_SIZE 履歴行の数です。デフォルトでは 20 です。 .It Dv EL_EDITOR 編集モードです。 "emacs" もしくは "vi" だけが受け付けられます。 他の値は無視します。この環境変数は .Pa ~/.editrc の .Ar bind -v や .Ar bind -e で上書きされます。 .El .Sh 関連項目 .Xr ps 1 , .Xr editline 3 , .Xr editrc 5 , .Xr services 5 , .Xr ppp 8 .Sh 歴史 .Nm ユーティリティは .Fx 2.2.5 で最初に登場しました。