Windowsでバックグラウンドサービスとしてプログラムを実行する方法
あなたがほとんどのWindowsユーザーのようなものであれば、Windowsを起動したときに実行されるたくさんの素晴らしい小さなユーティリティがあります。これはほとんどのアプリではうまく機能しますが、ユーザーがPCにログインする前でも起動した方がよい場合があります。これを行うには、Windowsサービスとしてアプリを実行する必要があります。.
Windowsサービスは、バックグラウンドで起動および実行されるように設定された特別なクラスのプログラムです。通常、ユーザーインターフェイスは不要で、ユーザーはPCにログインする必要もありません。多くのゲーマーやパワーユーザーはそれらをあなたがあなたのシステムをスピードアップするのを助けるためにあなたが無効にするのに使っていたものとして知っています.
アプリをサービスとして実行する主な利点は、ユーザーがログインする前にプログラムを起動できることです。これは、コンピュータから離れているときに利用可能にしたい重要なサービスを提供するアプリでは特に重要です。.
その好例が、Plexです。ローカルコンテンツを、所有しているほぼすべてのデバイスにストリーミング配信できるメディアサーバーアプリです。確かに、あなたはそれを通常のプログラムのようにシステムトレイに置いておくことができます、しかしコンピュータが停電または定期的なアップデートのために再起動するならどうでしょうか? PCにログインするまで、Plexは利用できません。ポップコーンが冷えている間にPlexを再起動するために別の部屋に移動しなければならない場合はイライラすることになり、街の外にいてインターネットでメディアをストリーミング配信しようとすると非常にイライラすることになります。 Plexをサービスとして設定するとその問題は解決します.
始める前に、アプリをサービスとして実行する際の注意点をいくつか知っておく必要があります。
- アプリはシステムトレイにアイコンを配置しません。あなたがアプリケーションのために定期的に利用可能なインターフェースを必要とするならば、それはサービスとして走るのに最も適していないかもしれません.
- 設定の変更や更新を行う必要がある場合は、サービスを停止し、通常のアプリとしてプログラムを実行し、必要なことをし、プログラムを停止してからサービスを再開する必要があります。.
- Windowsの起動時にプログラムがすでに実行されるように設定されている場合は、それを無効にして、2つのインスタンスが実行されないようにする必要があります。ほとんどのプログラムでは、この設定を切り替えるためのインターフェースにオプションがあります。他の人が自分自身をスタートアップフォルダに追加する可能性があるので、そこから削除できます。.
ロールする準備はできましたか?設定方法について説明しましょう。.
ステップ1:SrvStartをインストールする
アプリをサービスとして実行するには、小型のサードパーティ製ユーティリティが必要になります。いくつかありますが、私たちのお気に入りはSrvStartです。もともとはWindows NT用に設計されており、Windows XPからほぼすべてのバージョンのWindowsで動作します。.
はじめに、SrvStartダウンロードページに行き、ユーティリティを入手してください。ダウンロードには4つのファイル(2つのDLLと2つのEXEファイル)が含まれています。インストーラーはありません。代わりに、これらをあなたのコンピュータの C:\ Windows
SrvStartを「インストール」するために、これらをメインのWindowsフォルダに配置します。.
私達はまた、あなたが既にサービスに変換しようとしているどんなプログラムでもインストールしてセットアップしていると仮定するつもりですが、もしそうしていなければ、今もそうするための良い時期でしょう.
ステップ2:新しいサービス用の構成ファイルを作成する
次に、SrvStartがサービスを作成するために読み込む設定ファイルを作成します。 SrvStartを使ってできることはたくさんあります。また、ドキュメントページにあるすべての設定オプションに関する詳細を読むこともできます。この例では、2つのコマンドだけを使用します。 起動
, 起動するプログラムを指定します。 shutdown_method
, これは、それぞれのサービスが停止したときにプログラムを閉じる方法をSrvStartに指示します。.
メモ帳を起動し、以下の形式で設定ファイルを作成してください。ここでは、Plexを使用していますが、サービスとして実行したい任意のプログラム用のファイルを作成できます。の 起動
commandは単に実行可能ファイルが存在するパスを指定するだけです。のために shutdown_method
コマンドを使用しています。 WinMessage
SrvStartがサービスによって開かれたすべてのウィンドウにウィンドウを閉じるメッセージを送信するようにするパラメータ.
[プレックス] startup = "C:¥Program Files(x86)¥Plex¥Plex Media Server¥Plex Media Server.exe" shutdown_method = winmessage
明らかに、起動しているプログラムに従ってパスと名前を調整してください。.
新しい設定ファイルを好きな場所に保存し、拡張子.txtを拡張子.iniに置き換えます。次のステップで必要になるので、ファイル名を書き留めます。コマンドプロンプトで入力しやすいように、このファイルを一時的にC:ドライブに保存することをお勧めします。.
ステップ3:コマンドプロンプトを使用して新しいサービスを作成する
次のステップは、構成ファイル内の基準に基づいて新しいサービスを作成するためにWindows Service Controller(SC)コマンドを使用することです。 [スタート]メニューを右クリックして(またはWindows + Xキーを押して)[コマンドプロンプト(管理者)]を選択し、[はい]をクリックしてコマンドプロンプトを管理者権限で実行します。.
コマンドプロンプトで、次の構文を使用して新しいサービスを作成します。
SC CREATE Displayname = "" binpath = "srvstart.exe -c" start =
そのコマンドには注意すべき点がいくつかあります。まず、各等号(=)の後にスペースがあります。それは必須です。また、 価値はあなた次第です。そして最後に
値、あなたが使いたいでしょう
自動
サービスがWindowsで自動的に開始されるように.
したがって、Plexの例では、コマンドは次のようになります。
SC CREATEプレックスDisplayname = "プレックス" binpath = "srvstart.exeプレックス-c C:PlexService.ini" start = auto
はい、あなたはその権利を読みます:私は使いました C:PlexService.ini
の代わりに C:\ PlexService.ini
. このコマンドではスラッシュを削除する必要があります。.
コマンドを実行すると、すべてうまくいけばSUCCESSメッセージが表示されます。.
これ以降、Windowsが起動するたびに新しいサービスが実行されます。 Windowsの「サービス」インターフェースを開く(「スタート」をクリックして「サービス」と入力するだけ)と、他のサービスと同じように新しいサービスを見つけて設定できます。.
そしてそれだけです。 Windowsで起動するアプリがあり、ユーザーがログインしなくても起動できるようにしたい場合は、アプリをサービスに変えるだけで十分です。新しいサービスを作成して実行するための基本的な方法にのみ触れましたが、SrvStartを使ってサービスの実行方法を微調整することができることは他にもたくさんあります。もっと知りたければ必ずドキュメントをチェックしてください。.