7

バックグラウンドで動作するサードパーティのアプリケーションがありますが、すべてのエラーとメッセージをコンソールに出力するとします。つまり、現在、ユーザーをサーバーにログオンさせたままにし、再起動するたびにアプリケーションを再起動(ダブルクリック)する必要があります。

あまりクールではありません。

stdoutこれを行う簡単な方法があると確信していました。これは、とのログファイルで構成できる汎用サービスラッパーですstderr

私はチェックしましsvchost.exeたが、このサイトによると、それはDLLのものだけです。残念。

編集:アプリケーションはバッチファイルから起動する必要があります。FireDaemonはうまくいくようですが、10行未満のPythonコードで実行できることについては、少しやり過ぎだと思います...まあ、ここでは発明されていません...

4

6 に答える 6

11

リソースキットsrvany.exeからチェックアウトします。これにより、何でもサービスとして実行できるようになります。

srvany.exe次のようにレジストリを設定することにより、サービス定義のパラメータをを介して実行可能ファイルに渡すことができるため、バッチファイルをサービスとして実行できます。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters]
"Application"="C:\\Windows\\System32\\cmd.exe"
"AppParameters"="/C C:\\My\\Batch\\Script.cmd"
"AppDirectory"="C:\\My\\Batch"

RegEdit注:ファイルを使用するのではなく、でこれらのキーを設定する場合は、値に1つの円記号のみが必要です。

于 2008-10-03T06:59:33.190 に答える
4

NSSM: The Non-Sucking Service Managerをお勧めします。

  • 32/64 ビット EXE
  • パブリックドメイン (!)
  • サービス停止メッセージを適切に実装し、正常なシャットダウンのためにアプリケーションに適切なシグナルを送信します。
于 2012-06-04T02:55:03.070 に答える
3

非常に薄いサービス ラッパーを単純に実装しない理由は、.NET でサービスを作成するためのクイック スタート ガイドです。Writing a Useful Windows Service in .NET in Five Minutes

その実行が完了したら、Processクラスを使用してアプリケーションを開始し、自分で stdout/stderr を処理できるように構成できます ( ProcessStartInfoはあなたの友達です)。

于 2008-10-03T07:15:18.580 に答える
1

FireDaemonをチェックしてください。一度にインストールできるサービスは1つだけの無料版(FireDaemon liteだと思います)がありますが、これはサービスを設定するのに非常に便利なツールです。また、必要に応じて、バッチファイルを正しくラップアラウンドします。

于 2008-10-03T07:04:25.067 に答える
0

私は、firedaemon オプションを 2 番目に使用します。また、サービスがデスクトップと対話して cli 出力ウィンドウを表示できるようにするオプションを設定することもできます。彼らはもはや無料版を提供していませんが、ウェブでfiredaemon liteを検索すると、古い無料のlite版を見つけるか、有料ルートに行くことができます.

于 2008-10-10T04:27:48.033 に答える