Windows コマンドをサービスとして実行するにはどうすればよいですか?

Windows コマンドをサービスとして実行するにはどうすればよいですか?

私は Windows 7 を使用しています。コマンド プロンプトで次のコマンドを実行して、memcached サーバーを起動します。

memcached.exe -d start

ただし、コンピューターの再起動時にこのコマンドが自動的に実行されるように設定したいと思います。どのように設定すればよいでしょうか?

答え1

アプリケーションがインターフェイスにアクセスしない場合は、タスク スケジューラを使用してアクセスすることができます。プログラムを実行するのに十分なアクセス権を持つユーザー アカウントから起動時にアプリケーションが実行されるように設定します。

それ以外では、Windows 2003 リソース キットを検索すると、その中に、アプリをサービスにするために使用できる srvany.exe と instsrv.exe という 2 つのプログラムがあります。これらは、Windows 7 マシンで問題なく実行されるはずです。

答え2

いくつかのアプローチがあります。

「サービス コントロール」アプリケーションの使用をお勧めします。これは services.msc コントロール パネルと完全に統合されているため、任意のユーザーで実行でき、システムで自動的に起動できます。ただし、読み込み時間の問題が発生する可能性があるため、必要なサービスが既に読み込まれていることを確認するために、「自動 (遅延)」として起動することをお勧めします。

sc \\localhost create <newservicename> binpath= c:\path\to\service.exe

@DavidPostill が示唆したように、システムが exe をサービスとして認識する必要がない場合は、タスク スケジューラも別の良い選択肢です。タスク スケジューラには、多くの優れた構成オプションがあります。

NSSM のような代替サービス マネージャーを推奨する人もいます。http://www.nssm.com/ より

関連情報