rmid.1 revision 2362
2362N/A." or visit www.oracle.com if you need additional information or have any
1178N/A\f3rmid\fP ツールは、起動システムデーモンを開始します。起動システムデーモンを開始してからでないと、起動可能オブジェクトを起動システムに登録したり、VM 内で起動したりすることができません。起動可能なリモートオブジェクトを使ったプログラムの作成方法の詳細は、
1178N/A\f3注:\fP\f2rmid\fP の Sun の 実装を実行する場合、デフォルトでは、セキュリティーポリシーファイルを指定する必要があります。 それは、起動グループ用に VM を起動するために各 \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを \f2rmid\fP が検証できるようにするためです。特に、\f2ActivationGroupDesc\fP のコンストラクタに渡される \f2CommandEnvironment\fP や任意の \f2Properties\fP によって指定されるコマンドおよびオプションは、\f2rmid\fP のセキュリティーポリシーファイルの中で明示的に許可することが必要になりました。\f2sun.rmi.activation.execPolicy\fP プロパティーの値は、起動グループ用に VM を起動するために \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを判断するときに \f2rmid\fP が使用するポリシーを決定します。
1178N/Aこの内部レジストリの中で、\f2ActivationSystem\fP を \f2java.rmi.activation.ActivationSystem\fP という名前にバインドする
0N/Armid を inetd/xinetd から開始する
0N/A\f2rmid\fP をコマンド行から開始するには、\f2inetd\fP (Solaris の場合)、または \f2xinetd\fP (Linux) を構成して \f2rmid\fP を必要に応じて開始する方法もあります。
0N/A\f2rmid\fP を開始すると、\f2System.inheritedChannel\fP メソッドを呼び出して、継承されたチャンネル (\f2inetd\fP/\f2xinetd\fP から継承) を取得しようとします。継承されたチャンネルが \f2null\fP であるか、\f2java.nio.channels.ServerSocketChannel\fP のインスタンスでなかった場合、\f2rmid\fP はそのチャンネルは \f2inetd\fP/\f2xinetd\fP によって起動されたものではないと判断し、前述のように起動します。
0N/A継承されたチャンネルが \f2ServerSocketChannel\fP インスタンスである場合は、エクスポートするリモートオブジェクト、つまり \f2java.rmi.activation.ActivationSystem\fP がバインドされているレジストリと \f2java.rmi.activation.Activator\fP リモートオブジェクトに対する要求を受信するサーバーソケットとして、\f2ServerSocketChannel\fP から取得した \f2java.net.ServerSocket\fP を \f2rmid\fP では使用します。このモードでは、\f2rmid\fP の動作は、次のことを除いて、 コマンド行から起動した場合と同じです。
0N/A\f2System.err\fP に対する出力は、ファイルにリダイレクトされる。このファイルは \f2java.io.tmpdir\fP システムプロパティーで指定されるディレクトリ (通常は \f2/var/tmp\fP または \f2/tmp\fP) にある。 ファイル名の接頭辞は \f2rmid\-err\fP で、接尾辞は \f2"tmp"\fP である
1178N/A必要に応じてサービスを開始するように設定する詳細については、\f2inetd\fP (Solaris) または \f2xinetd\fP (Linux) のマニュアルページを参照してください。
1178N/A\f2rmid\fP の子プロセス (起動グループ) が作成されたときに、それぞれの子プロセスにコマンド行引数として渡されるオプションを指定します。たとえば、次のように指定すると、起動システムデーモ ンによって生成される各仮想マシンにプロパティーを渡すことができます。
1178N/A rmid \-C\-Dsome.property=value
1178N/A rmid \-C\-Djava.rmi.server.logCalls=true
1178N/A\f2rmid\fP を実行している \f2java\fP インタプリタに渡すオプションを指定します。たとえば、\f2rmid\fP が \f2rmid.policy\fP という名前のポリシーファイルを使用するように指定するには、\f2rmid\fP のコマンド行で \f2\-J\fP オプションを使って、\f2java.security.policy\fP プロパティーを定義します。 次に例を示します。
1178N/A\-J\-Dsun.rmi.activation.execPolicy=<policy>
1178N/A起動グループが実行されることになる VM の起動に使用するコマンドおよびコマンド行オプションをチェックするために、\f2rmid\fP が採用するポリシーを指定します。このオプションは、Java RMI 起動デーモンの Sun の実装だけに存在することに注意してください。コマンド行にこのプロパティーを指定しない場合、結果は \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP を指定した場合と同じになります。\f2<policy>\fP に指定可能な値は、\f2default\fP、\f2<policyClassName>\fP、または \f2none\fP です。 それぞれの値について、このあと説明します。
0N/Aデフォルトの \f2execPolicy\fP の場合、\f2rmid\fP が実行できるのは、\f2rmid\fP が使用する セキュリティーポリシーファイルの中で、実行する権限が \f2rmid\fP に与えられているコマンドおよびコマンド行オプションだけです。「デフォルト」の実行ポリシーで使用できるのは、デフォルトの起動グループ実装だけです。
1178N/A\f2rmid\fP は、起動グループ用の VM を起動するときに、そのグループについて登録された起動グループ記述子である \f2ActivationGroupDesc\fP 内の情報を使用します。グループ記述子は、\f2ActivationGroupDesc.CommandEnvironment\fP を指定します (省略可能)。 これには、起動グループを開始する「コマンド」と、そのコマンド行に追加できるコマンド行「オプション」が含まれています。デフォルトでは、\f2rmid\fP は、\f2java.home\fP にある \f2java\fP コマンドを使用します。グループ記述子には、オプションとしてコマンド行に追加される「プロパティー」オーバーライドも含まれています。 このプロパティーは、次のように定義します。
0N/Aアクセス権 \f2com.sun.rmi.rmid.ExecPermission\fP を使用すると、グループ記述子の \f2CommandEnvironment\fP で指定されたコマンドを実行して起動グループを開始する権限を、\f2rmid\fP に対して許可することができます。アクセス権 \f2com.sun.rmi.rmid.ExecOptionPermission\fP を使用すると、グループ記述子でプロパティーオーバーライドとして指定されたコマンド行オプション、または \f2CommandEnvironment\fP でオプションとして指定されたコマンド行オプションを、起動グループを開始するときに \f2rmid\fP が使用できるようになります。
1178N/A\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。
0N/A\f2ExecPermission\fP の「名前」は、\f2rmid\fP に実行を許可するコマンドのパス名です。「/*」 (「/」はファイル区切り文字 \f2File.separatorChar\fP) で終わるパス名は、そのディレクトリに含まれるすべてのファイルを示します。「/\-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を示します。パス名に特別なトークン「<<ALL FILES>>」を指定した場合は、\f3任意の\fPファイルを示します。
\f3注:\fP「*」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルを表します。 また、「\-」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルと、現在のディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を表します。
\f2ExecOptionPermission\fP クラスは、起動グループを開始するときに \f2rmid\fP が特定のコマンド行「オプション」を使用できる権限を表します。\f2ExecOptionPermission\fP の「名前」は、コマンド行オプションの値です。
オプションでは、ワイルドカードが限定的にサポートされます。アスタリスクは、ワイルドカードマッチを表します。 アスタリスクは、オプション名そのものとして使用できます。 つまり、任意のオプションを表すことができます。 また、オプション名の末尾に使用することもできます。 ただし、「.」か「=」の直後にアスタリスクを指定する必要があります。
例を示します。「*」、「\-Dfoo.*」、「\-Da.b.c=*」は有効ですが、「*foo」、「\-Da*b」、「ab*」は無効です。
\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。これらのアクセス権をチェックするのは \f2rmid\fP だけなので、これらのアクセス権を汎用的に許可しても安全です。
permission com.sun.rmi.rmid.ExecPermission
permission com.sun.rmi.rmid.ExecPermission
permission com.sun.rmi.rmid.ExecPermission
"/files/apps/rmidcmds/*";
permission com.sun.rmi.rmid.ExecOptionPermission
permission com.sun.rmi.rmid.ExecOptionPermission
"\-Djava.security.debug=*";
permission com.sun.rmi.rmid.ExecOptionPermission
"\-Dsun.rmi.*";
最初の 2 つの付与されているアクセス権は、\f2rmid\fP に対し、パス名により明示的に指定される \f2java\fP コマンドおよび \f2java_g\fP コマンドの 1.2.2 バージョンの実行を許可します。デフォルトでは、\f2java.home\fP にあるバージョンの \f2java\fP コマンド (\f2rmid\fP が使用するのと同じバージョン) が使用されるため、そのコマンドは、ポリシーファイルで指定する必要はありません。3 番目のアクセス権は、\f2rmid\fP に対して、ディレクトリ \f2/files/apps/rmidcmds\fP 内の任意のコマンドの実行権限を許可します。
4 番目のアクセス権 \f2ExecOptionPermission\fP は、\f2rmid\fP に対して、セキュリティーポリシーファイルを \f2/files/policies/group.policy\fP として定義している起動グループの開始を許可します。5 番目のアクセス権は、起動グループが \f2java.security.debug\fP プロパティーを使用することを許可しています。最後のアクセス権は、起動グループが \f2sun.rmi\fP というプロパティー名の階層内の任意のプロパティーを使用することを許可しています。
ポリシーファイルを指定して \f2rmid\fP を起動するには、\f2rmid\fP のコマンド行で \f2java.security.policy\fP プロパティーを指定する必要があります。 次に例を示します。
デフォルトの動作では十分な柔軟性が得られない場合、管理者は、\f2rmid\fP の起動時に、\f2checkExecCommand\fP メソッドが所属するクラスの名前を指定して、rmid が実行するコマンドをチェックすることができます。
起動グループを開始する前に、\f2rmid\fP は、ポリシーの \f2checkExecCommand\fP メソッドを呼び出します。このとき、起動グループの記述子と、起動グループを開始するための完全なコマンドを含む配列をそのメソッドに渡します。\f2checkExecCommand\fP が \f2SecurityException\fP をスローすると、\f2rmid\fP はその起動グループを開始せず、オブジェクトの起動を試行している呼び出し側には \f2ActivationException\fP がスローされます。
\f2sun.rmi.activation.execPolicy\fP プロパティーの値が「none」の場合、\f2rmid\fP は、起動グループを開始するコマンドをまったく検証しません。
起動システムデーモンがデータベースおよび関連情報を書き込むのに使うディレクトリの名前を指定します。デフォルトでは、\f2rmid\fP コマンドを実行したディレクトリに、\f2log\fP というログディレクトリが作成されます。
\f2rmid\fP のレジストリが使うポートを指定します。起動システムデーモンは、このレジストリの中で、\f2java.rmi.activation.ActivationSystem\fP という名前で\f2ActivationSystem\fP をバインドします。したがって、ローカルマシン上の \f2ActivationSystem\fP は、次のように \f2Naming.lookup\fP メソッドを呼び出すことによって取得できます。
import java.rmi.*;
import java.rmi.activation.*;
\f2\-port\fP オプションによって指定されたポートの、現在の \f2rmid\fP 呼び出しを停止します。ポートが指定されていない場合は、ポート 1098 で実行されている \f2rmid\fP を停止します。
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath、java(1)