web-dev-qa-db-ja.com

Windowsでexeをサービスにするにはどうすればよいですか?

最近、複数の部分からなるアプリケーションを作成しました。パーツの1つはネットワークツールです。これは常にOSから始まり、いかなる種類のメッセージも表示しません。しかし、それは信じられないほど苛立たしいコンソールを起動します。それはプログラム自体を閉じずに取り除くことは不可能です(与えられたようにこれを受け入れてください)。プログラムを起動してこの問題を回避することにしました(これは*.exe)サービスとして、したがってそれがまったく表示されないようにします。アプリケーションはさまざまなコンピューターに配布されるため(したがって、そもそもネットワークツールが必要です)。このプログラムをサービスとしてインストールする方法が必要です(したがって、コントロールパネルの一連のメニューを確認したり、どちらのコンピューターにとどまらなければならないサードパーティのアプリケーションをダウンロードしたりするような回答は必要ありません。サービスは実行されます)。これどうやってするの?

4
user3677994

Windows NTリソースキットでは、Microsoftはsrvanyと呼ばれるツールを提供しています。このツールは.exeサービスとして。それよりもうまく機能するツールは Non-Sucking Service Manager(nssm) です。

Nssmを使用して、Webサーバーであるpythonコンソール実行可能ファイルを、システムが正常に起動したときに実行されるサービスに変換しました。

4
LawrenceC

通常のWindows実行可能ファイルをサービスとして実行するためのサードパーティツールは多数あります。

Bitsumは、 MakeService と呼ばれるコマンドラインのみのユーティリティを作成しました(現在、悪用のために配布が制限されています)。

彼らは、通常のWindows実行可能ファイルを起動するサービススタブを使用してこれを行うことができます。そのサービススタブは、開始、停止などのサービスコマンドに応答して、必要に応じて起動されたプロセスを制御できます。

ただし、アプリケーションにユーザーとの対話性がある場合は、NT6 +でシステムサービスセッションの分離が発生します。

このフリーウェアユーティリティの即時ダウンロードを中止しなければならなかったのは悲しいことですが、それでも正当なニーズがある人には配布します。 32ビットおよび64ビットのx86ネイティブで利用できます。

受け入れられた回答が推奨するように、Windowsリソースキットに含まれるMicrosoftのsrvany.exeなど、他の同様のユーティリティがあると確信しています。これは、MakeServiceが行った/行ったのと同じことを行います。

0
dyasta

Microsoftは、Windowsサービスを作成し、リモートコンピューターにインストールする手順をこの ページ にまとめました。ここで概説するにはステップが多すぎます。潜在的な問題を解決するための追加のリンクがあります。

0
LDC3