2016-06-28 41 views
0

GoLangのコンパイル済みファイル.exeをWindowsのサービスとして変換する予定でしたが、外部から9パラメータでサービスが実行されたので、サービスとして.exeファイルと私の構文があったnssmを使用したWindowsサービスは動作していますが、Windowsでは動作しません。SC

sc create myservice binPath= "\"PATH\file.exe\" -param1=value -param2=value -param3=value...-param9=value" displayname= "MyServer" start= auto 

サービスが正常に作成されますが、私はそれを起動しようとすると、それは..「タイムリーに応答しませんでしたサービス」 で失敗

しかし、同じサービスをnssm構文で作成した場合、

nssm install myservice "PATH\file.exe" -param1=value -param2=value -param3=value...-param9=value 

それは働いていたと私は私のサービスからの応答を得ていた、私は問題はSCにおける構文や私のサービスであるかどうかわからない...

私も取り除くような多くの可能な方法を試してみました\ "binPath= "PATH/file.exe -param1=value -param2=value...param9=value" のようなパラメータを直接与えても動作しませんでした。また、引用符でパラメータを渡そうとしましたが、どちらもうまくいきませんでした。

+0

コードを確認する必要があります。 –

+0

よく@HarryJohnston私はいくつかの理由でコードを投稿することはできませんが、私はコード内で起こっているプロセスを言うことができます。マシンのCPU使用率を取り出し、HTTP POSTを使用してアプリケーションに送信します。アプリケーションは私が走っているマシンごとに固有のデータを必要とするので、POSTのCPU使用率に応じて送信される外部パラメータ(9個のパラメータ)として与えました。ログファイルに応答ステータスが記録されています... – Kamikaze

+0

この問題は、サービスが意図していることとは関係がない可能性があるので、実際には役に立ちません。エラー1053は、実行可能ファイルがStartServiceCtrlDispatcherを呼び出すことに失敗した場合、またはそれほど速く実行しない場合に発生します。その外観から、 'golang.org/x/sys/windows/svc'パッケージから' Run'関数を呼び出すことで、Goでそれを行います。おそらくあなたの主な機能は、与えられたパラメータが気に入らないので、 'Run'を呼び出すことなく終了しているのでしょうか? –

答えて

0

SCはWindowsサービスとして実行可能ファイルをインストールするのに便利ですが、すでにのWindowsサービスの実行可能ファイルをインストールする場合にのみ使用してください。 SCを使用して通常のexeをインストールすると、起動しようとするとサービスはError 1053で失敗します。 Windowsサービスインターフェイスを実装していないGoのexeは、この状況の犠牲になります。

+0

しかし、私はGOを使用してコンパイルされている他の.exeと一緒に行って、彼らはSC ..これだけ。exeファイルは9つのパラメータで起動するのが難しく、 "既にWindowsサービスの実行可能ファイルをインストールするためだけに使うべきです"という記述から、説明することはできますか? – Kamikaze

+0

'nssm'は実際のサービスをインストールするために使用できないことに注意してください。これは、それらがサービスであるかのように任意のアプリケーションを実行するために使用されます。 'nssm'と' sc'の両方がうまくいけば、あなたの実行ファイルは、あなたの起動方法によっては、過度に賢明で、サービスとしてもアプリケーションとしても実行されています。 –

+0

情報をありがとう、しかし、私は真剣にサービスとexeからの違いを得ることはできません..インターネットから私はおそらくサービスがサービスマネージャの監視の下でexeであることを理解し、通常のexeはWindowsマネージャの監視の下に...両方とも実行されているにもかかわらず、まだ明確ではありません。もっと学ぶ必要があります。 – Kamikaze

関連する問題