設定スクリプトは実行したいPPxPのコマンドを列挙した書式になっています。 ただし、#で始まる行はコメント行と解釈されます。また、1行を1つの処 理として扱いますが、行末に\を補うことによって次の行もその続きとし て扱うようになります。
# This is a sample
set MODE passive
set LOG.LEVEL phase fsm \
timer
設定スクリプトは/usr/local/etc/ppxp/conf(システム設定ディレクトリ)以下に置かれる システム設定スクリプトと、~/.ppxp/conf(ユーザー設定ディレクトリ) に置かれるユーザー設定スクリプトの2種類があります。書式は全く同じです が、システム設定スクリプトはroot権限で処理されるのに対して、ユーザー設 定スクリプトは一般ユーザー権限で処理されます。なお、両方のディレクトリ に同じ名前のスクリプトが存在する場合は、ユーザー設定ディレクトリが優先 されます。また、PPxPのユーザーがrootの場合はユーザー設定ディレクトリは システム設定ディレクトリと同じになります。
新しく作成したスクリプトは原則的にユーザー設定ディレクトリに置いてくだ さい。また、そのスクリプトの中に全ての設定を記述するのではなく、システ ム設定ディレクトリにある既存のスクリプトをsourceコマンドで取り込みなが ら変更部分だけを記述するようにすると良いでしょう。例えば、モデムを使う 場合、システム設定ディレクトリのmodemスクリプトを参照する形で記述しま す。
# modem -> serial -> serial.os
source modem
set LINE /dev/ttyS1
set DIAL.LIST 123456
このようにmodemスクリプトを読み込むことで、serialスクリプト、そして serial.osスクリプトが間接的に読み込まれます。モデムやターミナルアダプ タではシリアルインターフェイスを使いますが、そのデバイスのロックファイ ルを作成しておく必要があります。しかし、その設定を行う変数SERIAL.LOCK はroot権限でなければ変更できません。そこで、serial.osスクリプトを読み 込むことによってこの変数を設定しているのです。
スクリプト内ではPPxPの内部コマンド以外に外部コマンドを呼び出すこともで きます。スクリプトの実行権限によって外部コマンドの呼び出し方が異なりま す:
カレントディレクトリを/tmpに移し、環境変数PATHに ~/rc:/usr/local/etc/ppxp/rcが設定されます。外部コマンド名が相対パスで指定 されている場合はまず~/rcを補って実行可能なファイルを探します。そ して、見付からなければ/usr/local/etc/ppxp/rcを補って試みます。
カレントディレクトリを/tmpに移し、環境変数PATHに/usr/local/etc/ppxp/rcが設定され ます。外部コマンド名が相対パスで指定されている場合は/usr/local/etc/ppxp/rcを補っ て実行可能なファイルを探します。外部プログラムもroot権限で動作します。 したがって、外部コマンドを呼び出すシステム設定スクリプトの作成には十分 注意してください。
外部コマンドからは環境変数PPXP_PHASEを介してPPxPの状態を確認することが できます。