U.N.NERV

[Japanese | English]

SETI@Home コマンドライン版のサービス化

コマンドライン版は高速で便利ですが、それでもログオンしていないと機能しません。他のユーザーが利用することが考えられる端末やサーバーに関しては常時ログオンしておくのは好ましくありません。また、コマンドプロンプトの窓を出しっぱなしにするのは、使用上邪魔だという人も多いと思います。そこで、サービスとして登録し、システムが起動したらシステムのサービスとして自動的に計算が行われるようにすると便利です。

サービスとして設計されていない SETI@Home クライアントのようなバイナリをサービスとして登録し、利用するには、Windows NT のリソースキットが必要になります。また、環境によっては簡単にパラメータなどを与えてオプション設定により動作を変えるような事はできません。設定にも、レジストリの編集操作を伴う場合がありますので、Windows に関する知識、レジストリの編集経験があまりない人や自信のない人にはお奨めできない作業です。

注意!

レジストリの誤った編集や破損は、一つのアプリケーションだけではなくシステム全体に致命的な影響を与えることがあります。レジストリの変更は通常、ユーザーが手が行うようには考えられていません。レジストリを直接編集するのは、一種の直接改造に当たる事を十分意識をして操作を行ってください。ここで紹介される操作によって発生するいかなる事象についても、U.N. NERV およびページ作成責任者は一切の責任を持ちませんのでご注意ください。

サービスとして登録する前に、コマンドライン版のインストール手順のページで紹介した手法によって正常にインストールが行われ、アカウントの登録、ダウンロード、そして解析が開始されていることを確認してください。コマンドライン上での動作が正常に行われない状態でサービスとして登録しても正常に動作せず、トラブルシューティングは困難になります。

さて、コマンドラインでの動作が正常に行われていることを確認し、リソースキットを入手したらサービス化の作業に入ります。解析作業を停止し、"instsrv.exe" を使用して、サービスとして登録します。例えば、次のとおりです。なお、詳細な instsrv.exe そのものの使い方については、リソースキットのマニュアルをご参照ください。

  1. 管理者権限のあるアカウントでログオンします
  2. ローカルのハードディスクのコマンドライン版 "setiathome.exe" がインストールされているフォルダを確認します。例えばフォルダ名を "d:\seti" とかです
  3. リソースキットの "Instsrv.exe" を "2." のフォルダにコピーしてください
  4. コマンドプロンプトで、次のように打ちます。サービス名は "setiathome.exe" を登録する任意の名前、例えば "SETI@Home" とします
    d:\seti>instsrv SETI@Home d:\seti\setiathome.exe
    

    この作業は、作成したフォルダに移動して "フルパス" "拡張子も省略しないで" 入力する必要があります。

上記の作業により、サービスとして登録を行いました。次に、設定を行います。上記の例の通り登録を行ったとするとレジストリに、次の通りキーが作成されているはずです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

ここに、SETI@home というキーが作成されていると思います。このキーの直下に "Parameters" というキーを作成し、その次の通り、値をそれぞれ設定して下さい。

Application SETI@Home クライアントをフルパスで登録します。
例: d:\seti\setiathome.exe  (パスに空白が入る場合はダブルクォートで括ります)
AppParameters オプションが必要な場合はここに登録します。例えば、串の設定が必要な場合、
"-proxy jpproxy.un-nerv.com:8080"
のように指定します。
AppDirectory SETI@Home クライアントのロケーションをフルパスで登録します。
例: d:\seti  (パスに空白が入る場合はダブルクォートで括ります)

これで、基本設定はおしまいです。なお、このレジストリを使った設定はここで行わなくても、後からサービスのコントロールを使用して GUI 上から安全に行うことが出来ます。面倒だったり自信がない場合は、ここは確認だけにして、次のステップに進んでしまいましょう。

次に、サービスの取扱に関する設定を行います。ここからはレジストリエディタを使用しませんので、肩の力を抜いてやりましょう。

[スタート] メニューから [プログラム]-[管理ツール]-[サービス] を起動します。Windows NT の環境によっては、コントロールパネルの 「サービス」 アプレットから起動する必要がある場合があります。

開くと、右側のペインにサービスの一覧が出てきますから、先ほど登録したサービス名 "SETI@Home" を選択し、ダブルクリックをして開きます。[全般] タブの中にある "スタートアップの種類(E)" を設定します。Windows が起動した直後から SETI@Home クライアントを作動させたい場合は、これを 「自動」 として設定します。もし、何らかの理由で手動でスタートさせたい場合は 「手動」 を選んでください。

[ログオン] タブの中を確認してください。ログオンの項目が 「ローカルシステムアカウント」 であり、「デスクトップとの対話をサービスに許可 (W)」 にチェックが入っていないことを確認してください。この項目にチェックが入っていると、コマンドプロンプトが表示されてしまいます。

その他のタブは、基本的に設定の必要はありません。ただし、エラーなど何かの原因で SETI ソフトが終了してしまった時に自動的に再起動するように設定したりなどといったことが可能ですので、そのあたりは普通のサービスと一緒の取扱で設定してあげるといいでしょう。

これで、サービスとして登録されました。再起動して様子を見てみましょう。


[→] SETI@Home CPR 日本チームのページに戻る