rmid.1 14.5 KB
Newer Older
1
." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
T
tbell 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
18 19 20
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
T
tbell 已提交
21
."
22
.TH rmid 1 "14 Apr 2011"
D
duke 已提交
23 24

.LP
25 26
.SH "名前"
rmid \- Java RMI 起動システムデーモン
D
duke 已提交
27 28
.LP
.LP
29
\f3rmid\fP で起動システムデーモンを開始すると、オブジェクトを仮想マシン (VM) に登録して起動できるようになります。
D
duke 已提交
30
.LP
31
.SH "形式"
D
duke 已提交
32
.LP
T
tbell 已提交
33 34 35 36 37 38 39
.nf
\f3
.fl
rmid [options]
.fl
\fP
.fi
D
duke 已提交
40 41

.LP
42
.SH "説明"
T
tbell 已提交
43 44
.LP
.LP
45
\f3rmid\fP ツールは、起動システムデーモンを開始します。起動システムデーモンを開始してからでないと、起動可能オブジェクトを起動システムに登録したり、VM 内で起動したりすることができません。起動可能なリモートオブジェクトを使ったプログラムの作成方法の詳細は、
T
tbell 已提交
46
.na
47
\f2「Java RMI 仕様」\fP @
T
tbell 已提交
48
.fi
49
http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.htmlおよび
T
tbell 已提交
50
.na
51
\f2「起動のチュートリアル」\fP @
T
tbell 已提交
52
.fi
53
http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.htmlを参照してください。
T
tbell 已提交
54 55
.LP
.LP
56
デーモンを起動するには、次のように、セキュリティーポリシーファイルを指定して \f2rmid\fP コマンドを実行します。
T
tbell 已提交
57 58 59 60 61 62 63 64
.LP
.nf
\f3
.fl
    rmid \-J\-Djava.security.policy=rmid.policy
.fl
\fP
.fi
D
duke 已提交
65 66

.LP
T
tbell 已提交
67
.LP
68
\f3注:\fP \f2rmid\fP の Sun の 実装を実行する場合、デフォルトでは、セキュリティーポリシーファイルを指定する必要があります。それは、 \f2rmid\fP が起動グループ用に VM を起動するために各 \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを検証できるようにするためです。特に、ActivationGroupDesc のコンストラクタに渡される \f2CommandEnvironment\fP や任意の \f2Properties\fP によって指定される \f2コマンドおよび\fPオプションは、 \f2rmid\fP のセキュリティーポリシーファイルの中で明示的に許可することが必要になりました。\f2sun.rmi.activation.execPolicy\fP プロパティーの値は、 \f2起動グループ用に VM を\fP 起動するために \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを判断するときに rmid が使用するポリシーを決定します。
T
tbell 已提交
69 70
.LP
.LP
71
\f2rmid\fP をデフォルト設定で実行すると、次のような処理が行われます。
T
tbell 已提交
72 73 74 75
.LP
.RS 3
.TP 2
o
76
アクティベータを起動し、デフォルトポート 1098 で内部レジストリを起動する 
T
tbell 已提交
77 78
.TP 2
o
79
この内部レジストリの中で、 \f2ActivationSystem\fP を \f2java.rmi.activation.ActivationSystem という名前に\fP バインドする 
T
tbell 已提交
80
.RE
D
duke 已提交
81 82 83

.LP
.LP
84
レジストリにほかのポートを指定するには、rmid の起動時に \f2\-port\fP オプションを \f2指定しなければなりません\fP。次に例を示します。
T
tbell 已提交
85 86 87 88 89 90 91 92
.LP
.nf
\f3
.fl
    rmid \-J\-Djava.security.policy=rmid.policy \-port 1099
.fl
\fP
.fi
D
duke 已提交
93

T
tbell 已提交
94 95
.LP
.LP
96
このコマンドは、起動システムデーモンを開始し、レジストリのデフォルトポート 1099 でレジストリを開始します。
T
tbell 已提交
97 98
.LP
.SS 
99
rmid を inetd/xinetd から開始する
T
tbell 已提交
100 101
.LP
.LP
102
\f2rmid\fP をコマンド行から開始するには、 \f2inetd\fP (Solaris の場合)、または \f2xinetd\fP (Linux の場合) を構成して \f2rmid\fP を必要に応じて開始する方法もあります。
T
tbell 已提交
103 104
.LP
.LP
105
\f2rmid\fP を開始すると、System.inheritedChannel メソッドを呼び出して、継承されたチャンネル ( \f2inetd\fP/\f2xinetd\fP から継承) を取得しようとします。 継承されたチャンネルが \f2null\fP であるか、 \f2java.nio.channels.ServerSocketChannel\fP のインスタンスでなかった場合、 \f2rmid\fP rmid はそのチャンネルは \f2inetd\fP/\f2xinetd\fP によって起動されたものではないと判断し、前述のように起動します。
T
tbell 已提交
106 107
.LP
.LP
108
継承されたチャンネルが \f2ServerSocketChannel\fP インスタンスである場合は、 \f2rmid\fP はエクスポートするリモートオブジェクト、つまり java.rmi.activation.ActivationSystem がバインドされているレジストリと java.rmi.activation.Activator リモートオブジェクトに対する要求を受信するサーバーソケットとして、ServerSocketChannel から取得した java.net.ServerSocket を使用します。 このモードでは、 \f2rmid\fP の動作は、次のことを除いて、 コマンド行から起動した場合と同じです。
T
tbell 已提交
109 110
.LP
.RS 3
D
duke 已提交
111
.TP 2
T
tbell 已提交
112
o
113
\f2System.err\fP に対する出力は、ファイルにリダイレクトされる。このファイルは \f2java.io.tmpdir\fP システムプロパティーで指定されるディレクトリ (通常は \f2/var/tmp\fP または \f2/tmp\fP) にある。ファイル名の接頭辞は \f2"rmid\-err"\fP で、接尾辞は \f2"tmp"\fP である 
D
duke 已提交
114
.TP 2
T
tbell 已提交
115
o
116
\f2\-port\fP オプションは拒否される。このオプションを指定すると、 \f2rmid\fP はエラーメッセージを出して終了する 
D
duke 已提交
117
.TP 2
T
tbell 已提交
118
o
119
\f2\-log\fP オプションは必須。このオプションを指定しないと、 \f2rmid\fP はエラーメッセージを出して終了する 
T
tbell 已提交
120
.RE
D
duke 已提交
121 122

.LP
T
tbell 已提交
123
.LP
124
必要に応じてサービスを開始するように設定する詳細については、 \f2inetd\fP (Solaris) または \f2xinetd\fP (Linux) のマニュアルページを参照してください。
T
tbell 已提交
125
.LP
126
.SH "オプション"
T
tbell 已提交
127 128 129 130
.LP
.RS 3
.TP 3
\-C<someCommandLineOption> 
131
\f2rmid\fP の子プロセス (起動グループ) が作成されたときに、それぞれの子プロセスにコマンド行引数として渡されるオプションを指定します。たとえば、次のように指定すると、起動システムデーモンによって生成される各仮想マシンにプロパティーを渡すことができます。 
T
tbell 已提交
132 133 134 135 136 137 138
.nf
\f3
.fl
    rmid \-C\-Dsome.property=value
.fl
\fP
.fi
139
コマンド行引数を子プロセスに渡す機能は、デバッグを行う場合に便利です。たとえば、次のようなコマンドを実行できます。 
T
tbell 已提交
140 141 142 143 144 145 146
.nf
\f3
.fl
    rmid \-C\-Djava.rmi.server.logCalls=true
.fl
\fP
.fi
147
このコマンドにより、すべての子 VM でサーバー呼び出しのログが作成されるようになります。 
T
tbell 已提交
148 149 150
.LP
.TP 3
\-J<someCommandLineOption> 
151
rmid を実行している \f2java\fP インタプリタに渡すオプションを指定します。 たとえば、 \f2rmid\fP が \f2rmid.policy\fP という名前のポリシーファイルを使用するように指定するには、rmid のコマンド行で \f2\-J\fP オプションを使って、 \f2java.security.policy\fP プロパティーを定義します。 次に例を示します。 
T
tbell 已提交
152 153 154 155 156 157 158 159 160
.nf
\f3
.fl
    rmid \-J\-Djava.security.policy=rmid.policy
.fl
\fP
.fi
.TP 3
\-J\-Dsun.rmi.activation.execPolicy=<policy> 
161
起動グループが実行されることになる VM の起動に使用するコマンドおよびコマンド行オプションをチェックするために、 \f2rmid\fP が採用するポリシーを指定します。このオプションは、Java RMI 起動デーモンの Sun の実装だけに存在することに注意してください。コマンド行にこのプロパティーを指定しない場合、結果は \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP を指定した場合と同じになります。\f2<policy>\fP に指定可能な値は、\f2default\fP、\f2<policyClassName>\fP、または \f2none\fP です。 
T
tbell 已提交
162
.RS 3
D
duke 已提交
163
.TP 2
T
tbell 已提交
164
o
165
\f3default (または、このプロパティーが「指定されていない」場合)\fP 
D
duke 已提交
166
.LP
167
デフォルトの \f2execPolicy\fP の場合、 \f2rmid\fP が実行できるのは、 \f2rmid\fP が使用するセキュリティーポリシーファイルの中で、実行する権限が \f2rmid\fP に与えられているコマンドおよびコマンド行オプションだけです。「デフォルト」の実行ポリシーで使用できるのは、デフォルトの起動グループ実装だけです。 
T
tbell 已提交
168
.LP
169
\f2rmid は、\fP 起動グループ用の VM を起動するときに、そのグループについて登録された起動グループ記述子である \f2ActivationGroupDesc\fP 内の情報を使用します。グループ記述子は、 \f2ActivationGroupDesc.CommandEnvironment\fP を指定します (省略可能)。これには、起動グループを開始する「コマンド」と、そのコマンド行に追加できるコマンド行「オプション」が含まれています。デフォルトでは、 \f2rmid は\fP java.home にある \f2java\fP コマンドを使用します。 グループ記述子には、オプションとしてコマンド行に追加される「プロパティー」オーバーライドも含まれています。このプロパティーは、次のように定義します。 
T
tbell 已提交
170 171 172 173 174 175 176 177
.nf
\f3
.fl
    \-D\fP\f4<property>\fP\f3=\fP\f4<value>\fP\f3
.fl
\fP
.fi
.LP
178
アクセス権 \f2com.sun.rmi.rmid.ExecPermission\fP を使用すると、 \f2rmid\fP に対して、グループ記述子の \f2CommandEnvironment\fP で指定されたコマンドを実行して起動グループを開始する権限を許可することができます。アクセス権 \f2com.sun.rmi.rmid.ExecOptionPermission\fP を使用すると、グループ記述子でプロパティーオーバーライドとして指定されたコマンド行オプション、または \f2CommandEnvironment\fP でオプションとして指定されたコマンド行オプションを、起動グループを開始するときに rmid が使用できるようになります。 
T
tbell 已提交
179
.LP
180
\f2rmid に\fP さまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。つまり、すべてのコードソースに対して許可します。 
T
tbell 已提交
181 182 183
.RS 3
.TP 3
ExecPermission 
184
\f2ExecPermission\fP クラスは、起動グループを開始するために \f2rmid が\fP 特定の「コマンド」を実行する権限を表します。 
T
tbell 已提交
185
.LP
186
\f3構文\fP
D
duke 已提交
187
.br
188
\f2ExecPermission\fP の「名前」は、 \f2rmid\fP に実行を許可するコマンドのパス名です。「/*」 (「/」はファイル区切り文字 File.separatorChar) で終わるパス名は、そのディレクトリに含まれるすべてのファイルを示します。 「/\-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を示します。パス名に特別なトークン「<<ALL FILES>>」を指定した場合は、\f3任意の\fPファイルを示します。 
T
tbell 已提交
189
.LP
190
\f3注:\fP 「*」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルを表します。また、「\-」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルと、現在のディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を表します。  
T
tbell 已提交
191 192
.TP 3
ExecOptionPermission 
193
\f2ExecOptionPermission\fP クラスは、起動グループを開始するときに \f2rmid は、起動グループを開始するコマンドをまったく検証しません。\fP 特定のコマンド行「オプション」を使用できる権限を表します。 \f2ExecOptionPermission\fP の「名前」は、コマンド行オプションの値です。 
T
tbell 已提交
194
.LP
195
\f3構文\fP
D
duke 已提交
196
.br
197
オプションでは、ワイルドカードが限定的にサポートされます。アスタリスクは、ワイルドカードマッチを表します。 アスタリスクは、オプション名そのものとして使用できます。 つまり、任意のオプションを表すことができます。 また、オプション名の末尾に使用することもできます。 ただし、「.」か「=」の直後にアスタリスクを指定する必要があります。 
T
tbell 已提交
198
.LP
199
例を示します。「*」、「\-Dfoo.*」、「\-Da.b.c=*」は有効ですが、「*foo」、「\-Da*b」、「ab*」は無効です。  
T
tbell 已提交
200
.TP 3
201 202
rmid のポリシーファイル 
\f2rmid に\fP さまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。つまり、すべてのコードソースに対して許可します。これらのアクセス権をチェックするのは \f2rmid\fP だけなので、これらのアクセス権を汎用的に許可しても安全です。 
T
tbell 已提交
203
.LP
204
rmid に各種の実行権限を許可するポリシーファイルの例を、次に示します。 
D
duke 已提交
205
.nf
T
tbell 已提交
206 207
\f3
.fl
D
duke 已提交
208
grant {
T
tbell 已提交
209
.fl
D
duke 已提交
210
    permission com.sun.rmi.rmid.ExecPermission
T
tbell 已提交
211
.fl
212
        "/files/apps/java/jdk1.7.0/solaris/bin/java";
T
tbell 已提交
213
.fl
D
duke 已提交
214

T
tbell 已提交
215
.fl
D
duke 已提交
216
    permission com.sun.rmi.rmid.ExecPermission
T
tbell 已提交
217 218 219
.fl
        "/files/apps/rmidcmds/*";
.fl
D
duke 已提交
220

T
tbell 已提交
221
.fl
D
duke 已提交
222
    permission com.sun.rmi.rmid.ExecOptionPermission
T
tbell 已提交
223 224 225
.fl
        "\-Djava.security.policy=/files/policies/group.policy";
.fl
D
duke 已提交
226

T
tbell 已提交
227
.fl
D
duke 已提交
228
    permission com.sun.rmi.rmid.ExecOptionPermission
T
tbell 已提交
229 230 231
.fl
        "\-Djava.security.debug=*";
.fl
D
duke 已提交
232

T
tbell 已提交
233
.fl
D
duke 已提交
234
    permission com.sun.rmi.rmid.ExecOptionPermission
T
tbell 已提交
235 236 237
.fl
        "\-Dsun.rmi.*";
.fl
D
duke 已提交
238
};
T
tbell 已提交
239 240
.fl
\fP
D
duke 已提交
241
.fi
242
最初に付与されているアクセス権は、 \f2rmid\fP に対し、パス名により明示的に指定される \f2java\fP コマンドの 1.7.0 バージョンの実行を許可します。デフォルトでは、java.home にあるバージョンの \f2java\fP コマンド ( \f2rmid\fP が使用するのと同じバージョン) が使用されるため、そのコマンドは、ポリシーファイルで指定する必要はありません。2 番目のアクセス権は、 \f2rmid\fP に対して、ディレクトリ \f2/files/apps/rmidcmds\fP 内の任意のコマンドの実行権限を許可します。 
T
tbell 已提交
243
.LP
244
3 番目に付与されているアクセス権 \f2ExecOptionPermission\fP は、 \f2rmid\fP に対して、セキュリティーポリシーファイルを \f2/files/policies/group.policy\fP として定義している起動グループの開始を許可します。次のアクセス権は、起動グループが \f2java.security.debug\fP プロパティーを使用することを許可しています。最後のアクセス権は、起動グループが \f2sun.rmi\fP というプロパティー名の階層内の任意のプロパティーを使用することを許可しています。 
T
tbell 已提交
245
.LP
246
ポリシーファイルを指定して \f2rmid\fP を起動するには、rmid のコマンド行で \f2java.security.policy\fP プロパティーを指定する必要があります。 次に例を示します。 
T
tbell 已提交
247
.LP
248
\f2rmid \-J\-Djava.security.policy=rmid.policy\fP  
T
tbell 已提交
249
.RE
D
duke 已提交
250
.TP 2
T
tbell 已提交
251 252 253
o
\f4<policyClassName>\fP 
.LP
254
デフォルトの動作では十分な柔軟性が得られない場合、管理者は、 \f2rmid\fP の起動時に、 \f2checkExecCommand\fP メソッドが所属するクラスの名前を指定して、rmid が実行するコマンドをチェックすることができます。 
T
tbell 已提交
255
.LP
256
\f2policyClassName\fP には、引数なしのコンストラクタを持ち、次のような \f2checkExecCommand\fP メソッドを実装している public クラスを指定します。 
D
duke 已提交
257
.nf
T
tbell 已提交
258 259 260 261 262 263 264 265 266
\f3
.fl
    public void checkExecCommand(ActivationGroupDesc desc,
.fl
                                 String[] command)
.fl
        throws SecurityException;
.fl
\fP
D
duke 已提交
267
.fi
268
起動グループを開始する前に、 \f2rmid\fP は、ポリシーの \f2checkExecCommand\fP メソッドを呼び出します。このとき、起動グループの記述子と、起動グループを開始するための完全なコマンドを含む配列をそのメソッドに渡します。 \f2checkExecCommand\fP が \f2SecurityException\fP をスローすると、 \f2rmid\fP はその起動グループを開始せず、オブジェクトの起動を試行している呼び出し側には \f2ActivationException\fP がスローされます。 
T
tbell 已提交
269 270 271 272
.TP 2
o
\f3none\fP 
.LP
273
\f2sun.rmi.activation.execPolicy\fP プロパティーの値が「none」の場合、 \f2rmid\fP は、起動グループを開始するコマンドをまったく検証しません。  
T
tbell 已提交
274
.RE
D
duke 已提交
275
.LP
T
tbell 已提交
276 277
.TP 3
\-log dir 
278
起動システムデーモンがデータベースおよび関連情報を書き込むのに使うディレクトリの名前を指定します。デフォルトでは、rmid コマンドを実行したディレクトリに、 \f2log\fP というログディレクトリが作成されます。 
T
tbell 已提交
279 280 281
.LP
.TP 3
\-port port 
282
\f2rmid\fP のレジストリが使うポートを指定します。起動システムデーモンは、このレジストリの中で、 \f2java.rmi.activation.ActivationSystem\fP という名前でActivationSystem をバインドします。したがって、ローカルマシン上の \f2ActivationSystem\fP は、次のように \f2Naming.lookup\fP メソッドを呼び出すことによって取得できます。 
D
duke 已提交
283
.nf
T
tbell 已提交
284 285 286 287 288 289
\f3
.fl
    import java.rmi.*; 
.fl
    import java.rmi.activation.*;
.fl
D
duke 已提交
290

T
tbell 已提交
291 292 293 294
.fl
    ActivationSystem system; system = (ActivationSystem)
.fl
    Naming.lookup("//:\fP\f4port\fP/java.rmi.activation.ActivationSystem");
D
duke 已提交
295 296
.fl
.fi
T
tbell 已提交
297 298
.TP 3
\-stop 
299
\-port オプションによって指定されたポートの、現在の \f2rmid\fP 呼び出しを停止します。 ポートが指定されていない場合は、ポート 1098 で実行されている \f2rmid\fP を停止します。 
D
duke 已提交
300 301
.RE

302 303
.LP
.SH "環境変数"
T
tbell 已提交
304 305 306 307
.LP
.RS 3
.TP 3
CLASSPATH 
308
ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。例を示します。 
D
duke 已提交
309
.nf
T
tbell 已提交
310 311 312 313 314
\f3
.fl
    .:/usr/local/java/classes
.fl
\fP
D
duke 已提交
315 316
.fi
.RE
T
tbell 已提交
317 318

.LP
319
.SH "関連項目"
D
duke 已提交
320 321
.LP
.LP
322
rmic(1)、
T
tbell 已提交
323 324 325
.na
\f2CLASSPATH\fP @
.fi
326
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath、java(1)
D
duke 已提交
327 328
.LP