Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > drbライブラリ > DRbモジュール > start_service

module function DRb.#start_service

start_service(uri=nil, front=nil, config_or_acl=nil) -> ()[permalink][rdoc]

dRuby のサービス(サーバ)を起動します。

これで起動したサーバはプロセスのプライマリサーバとなります。すでにプライマリサーバが存在する場合は上書きされます。

uri に URI を文字列で指定すると、それに起動したサービスを bind します。通常は 'druby://<hostname>:<port>' という形式の URI を指定します。このときは TCP が通信手段として使われます。 'drbunix:' のような他のプロトコルを指定することもできます。

front でフロントオブジェクト(URI に結び付けられるオブジェクト)を設定します。

config で Hash で設定を渡します。以下の項目が利用できます。

:idconv

dRuby内部で識別子とオブジェクトを相互に変換するためのオブジェクト。デフォルトは DRb::DRbIdConv のインスタンス。

:verbose

真を指定すると失敗したdRuby経由のメソッドのログを $stdout に出力します。デフォルトは false。

:tcp_acl

サーバに設定する ACL(Access Control List)。詳しくは ACL を見てください。デフォルトは nil(設定しない)。

:load_limit

サーバが受け付けるメッセージの最大バイト数。デフォルトは 26214400(25MB)

:argc_limit

サーバが受け付けるリモートメソッド呼出の引数の最大個数。デフォルトは256。

:auto_load

真に設定すると、 URIで指定されたプロトコルを取り扱うのに必要なDRbのサブライブラリが自動的にロードされます。デフォルトは true。

:safe_level

リモートからのメソッド呼出しメッセージを受け取ったときに対応するローカルオブジェクトのメソッド呼出をする前にスレッドに設定されるセーフレベル($SAFE)の値。デフォルト値は0。

デフォルト値は DRb::DRbServer の以下のクラスメソッドによって変更できます。

config に Hash以外を渡すと、ACL(Access Control List)として取り扱われます。

起動したサーバはただちに接続を待ち受けます。

[PARAM] uri:
起動するサービスを bind する URI の文字列
[PARAM] front:
フロントオブジェクト
[PARAM] config:
オプション設定の Hash
[EXCEPTION] DRb::DRbBadURI:
URI の schema が不正(サポートされていないものである)場合に発生します

[SEE_ALSO] DRb.#primary_server, DRb::DRbServer.new