GOで実行可能ファイルを作成しましたが、Windowsサービスとして実行しています。Windowsサービスが起動していませんGO Lang exe
私はパッケージを使用してgolang.org/x/sys/windows/svc、および
run := svc.Run
_ = run(svcName, &myservice{})
func (m *myservice) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (ssec bool, errno uint32) {
changes <- svc.Status{State: svc.StartPending}
go mainmethod()
changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted}
}
サービスは、ほとんどの時間が、問題の作品SCMによって呼び出されるExecuteメソッドでそれを提供していますシステムを再起動するたびにエラー1053が表示されます。「サービスが開始または制御要求にタイムリーに応答しない」というエラーが発生し、起動しない。
実行時にログステートメントを追加した後Executeメソッドを使用すると、サービスがエラーなく開始されるとログが出力されることがわかりましたが、サービスで1053エラーが発生した場合、SCMはn私のexeを呼び出すことさえありません。なぜなら、ログステートメントのどれもは印刷されないからです。 誰もWindowsサービスの作成を試みたことがありますか?実装やWindowsのsvcパッケージに問題はありますか?
おかげ
Execute関数に空のボディがありますか?もしそうなら、 'changes'チャンネルを介してシステムに状態更新を送る必要があります。サービスのベースとして[svc service example](https://github.com/golang/sys/tree/master/windows/svc/example)を使用してください。 –
いいえ、それはSCMにデータを送信します、私の悪い、私はそのコードを追加します – Pharaoh
'main.go'ファイルとそれをどのように構築することができますか? – pltvs