From a91b404a4f62900cf6912839591ddd44f94e759c Mon Sep 17 00:00:00 2001 From: Utkarsh Dixit Date: Mon, 16 Nov 2020 20:17:17 +0530 Subject: [PATCH] service(windows): add support for delayed auto start service (#244) * service(windows): added option flag for delayed automatic start * service(windows): added option flag for delayed automatic start Co-authored-by: Utkarsh Dixit --- go.mod | 2 +- service.go | 10 ++++++---- service_windows.go | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 5582a1e2..55e67ea6 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/kardianos/service go 1.12 -require golang.org/x/sys v0.0.0-20190204203706-41f3e6584952 +require golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211 diff --git a/service.go b/service.go index 7040a602..2583bb1f 100644 --- a/service.go +++ b/service.go @@ -80,12 +80,12 @@ const ( optionPrefix = "Prefix" optionPrefixDefault = "application" - optionRunWait = "RunWait" - optionReloadSignal = "ReloadSignal" - optionPIDFile = "PIDFile" + optionRunWait = "RunWait" + optionReloadSignal = "ReloadSignal" + optionPIDFile = "PIDFile" optionLimitNOFILE = "LimitNOFILE" optionLimitNOFILEDefault = -1 // -1 = don't set in configuration - optionRestart = "Restart" + optionRestart = "Restart" optionSuccessExitStatus = "SuccessExitStatus" @@ -151,6 +151,8 @@ type Config struct { // in addition to the default ones. // * Linux (systemd) // - LimitNOFILE int - Maximum open files (ulimit -n) (https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7) + // * Windows + // - DelayedAutoStart bool (false) - after booting start this service after some delay Option KeyValue } diff --git a/service_windows.go b/service_windows.go index 11c9af50..8a67ae0f 100644 --- a/service_windows.go +++ b/service_windows.go @@ -214,6 +214,7 @@ func (ws *windowsService) Install() error { ServiceStartName: ws.UserName, Password: ws.Option.string("Password", ""), Dependencies: ws.Dependencies, + DelayedAutoStart: ws.Option.bool("DelayedAutoStart", false), }, ws.Arguments...) if err != nil { return err