From 4ac50d86f345e891c3616fc55c813d7ad587cd43 Mon Sep 17 00:00:00 2001 From: Daniel Theophanes Date: Thu, 13 Jun 2024 08:31:55 -0500 Subject: [PATCH] service: go fmt comments --- example/logging/main.go | 14 +++-- service.go | 120 ++++++++++++++++++++++++--------------- service_aix.go | 3 +- service_go1.8.go | 3 +- service_nosu_test.go | 1 + service_su_test.go | 1 + servicetest_unix_test.go | 1 + 7 files changed, 89 insertions(+), 54 deletions(-) diff --git a/example/logging/main.go b/example/logging/main.go index 7a60326f..976c7459 100644 --- a/example/logging/main.go +++ b/example/logging/main.go @@ -16,7 +16,8 @@ import ( var logger service.Logger // Program structures. -// Define Start and Stop methods. +// +// Define Start and Stop methods. type program struct { exit chan struct{} } @@ -54,11 +55,12 @@ func (p *program) Stop(s service.Service) error { } // Service setup. -// Define service config. -// Create the service. -// Setup the logger. -// Handle service controls (optional). -// Run the service. +// +// Define service config. +// Create the service. +// Setup the logger. +// Handle service controls (optional). +// Run the service. func main() { svcFlag := flag.String("service", "", "Control the system service.") flag.Parse() diff --git a/service.go b/service.go index 904835e0..130fc22d 100644 --- a/service.go +++ b/service.go @@ -167,42 +167,70 @@ func New(i Interface, c *Config) (Service, error) { } // KeyValue provides a list of system specific options. -// * OS X -// - LaunchdConfig string () - Use custom launchd config. -// - KeepAlive bool (true) - Prevent the system from stopping the service automatically. -// - RunAtLoad bool (false) - Run the service after its job has been loaded. -// - SessionCreate bool (false) - Create a full user session. -// -// * Solaris -// - Prefix string ("application") - Service FMRI prefix. -// -// * POSIX -// - UserService bool (false) - Install as a current user service. -// - SystemdScript string () - Use custom systemd script. -// - UpstartScript string () - Use custom upstart script. -// - SysvScript string () - Use custom sysv script. -// - OpenRCScript string () - Use custom OpenRC script. -// - RunWait func() (wait for SIGNAL) - Do not install signal but wait for this function to return. -// - ReloadSignal string () [USR1, ...] - Signal to send on reload. -// - PIDFile string () [/run/prog.pid] - Location of the PID file. -// - LogOutput bool (false) - Redirect StdErr & StandardOutPath to files. -// - Restart string (always) - How shall service be restarted. -// - SuccessExitStatus string () - The list of exit status that shall be considered as successful, -// in addition to the default ones. -// - LogDirectory string(/var/log) - The path to the log files directory -// -// * Linux (systemd) -// - LimitNOFILE int (-1) - 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. -// - Password string () - Password to use when interfacing with the system service manager. -// - Interactive bool (false) - The service can interact with the desktop. (more information https://docs.microsoft.com/en-us/windows/win32/services/interactive-services) -// - DelayedAutoStart bool (false) - after booting start this service after some delay. -// - StartType string ("automatic") - Start service type. (automatic | manual | disabled) -// - OnFailure string ("restart" ) - Action to perform on service failure. (restart | reboot | noaction) -// - OnFailureDelayDuration string ( "1s" ) - Delay before restarting the service, time.Duration string. -// - OnFailureResetPeriod int ( 10 ) - Reset period for errors, seconds. +// +// - OS X +// +// - LaunchdConfig string () - Use custom launchd config. +// +// - KeepAlive bool (true) - Prevent the system from stopping the service automatically. +// +// - RunAtLoad bool (false) - Run the service after its job has been loaded. +// +// - SessionCreate bool (false) - Create a full user session. +// +// - Solaris +// +// - Prefix string ("application") - Service FMRI prefix. +// +// - POSIX +// +// - UserService bool (false) - Install as a current user service. +// +// - SystemdScript string () - Use custom systemd script. +// +// - UpstartScript string () - Use custom upstart script. +// +// - SysvScript string () - Use custom sysv script. +// +// - OpenRCScript string () - Use custom OpenRC script. +// +// - RunWait func() (wait for SIGNAL) - Do not install signal but wait for this function to return. +// +// - ReloadSignal string () [USR1, ...] - Signal to send on reload. +// +// - PIDFile string () [/run/prog.pid] - Location of the PID file. +// +// - LogOutput bool (false) - Redirect StdErr & StandardOutPath to files. +// +// - Restart string (always) - How shall service be restarted. +// +// - SuccessExitStatus string () - The list of exit status that shall be considered as successful, +// in addition to the default ones. +// +// - LogDirectory string(/var/log) - The path to the log files directory +// +// - Linux (systemd) +// +// - LimitNOFILE int (-1) - 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. +// +// - Password string () - Password to use when interfacing with the system service manager. +// +// - Interactive bool (false) - The service can interact with the desktop. (more information https://docs.microsoft.com/en-us/windows/win32/services/interactive-services) +// +// - DelayedAutoStart bool (false) - after booting start this service after some delay. +// +// - StartType string ("automatic") - Start service type. (automatic | manual | disabled) +// +// - OnFailure string ("restart" ) - Action to perform on service failure. (restart | reboot | noaction) +// +// - OnFailureDelayDuration string ( "1s" ) - Delay before restarting the service, time.Duration string. +// +// - OnFailureResetPeriod int ( 10 ) - Reset period for errors, seconds. type KeyValue map[string]interface{} // bool returns the value of the given name, assuming the value is a boolean. @@ -325,16 +353,16 @@ type System interface { // Interface represents the service interface for a program. Start runs before // the hosting process is granted control and Stop runs when control is returned. // -// 1. OS service manager executes user program. -// 2. User program sees it is executed from a service manager (IsInteractive is false). -// 3. User program calls Service.Run() which blocks. -// 4. Interface.Start() is called and quickly returns. -// 5. User program runs. -// 6. OS service manager signals the user program to stop. -// 7. Interface.Stop() is called and quickly returns. -// - For a successful exit, os.Exit should not be called in Interface.Stop(). -// 8. Service.Run returns. -// 9. User program should quickly exit. +// 1. OS service manager executes user program. +// 2. User program sees it is executed from a service manager (IsInteractive is false). +// 3. User program calls Service.Run() which blocks. +// 4. Interface.Start() is called and quickly returns. +// 5. User program runs. +// 6. OS service manager signals the user program to stop. +// 7. Interface.Stop() is called and quickly returns. +// - For a successful exit, os.Exit should not be called in Interface.Stop(). +// 8. Service.Run returns. +// 9. User program should quickly exit. type Interface interface { // Start provides a place to initiate the service. The service doesn't // signal a completed start until after this function returns, so the diff --git a/service_aix.go b/service_aix.go index 505c3ae0..2563b753 100644 --- a/service_aix.go +++ b/service_aix.go @@ -1,4 +1,5 @@ -//+build aix +//go:build aix +// +build aix // Copyright 2015 Daniel Theophanes. // Use of this source code is governed by a zlib-style diff --git a/service_go1.8.go b/service_go1.8.go index 64bb0a9f..c8f45fcc 100644 --- a/service_go1.8.go +++ b/service_go1.8.go @@ -1,4 +1,5 @@ -//+build go1.8 +//go:build go1.8 +// +build go1.8 package service diff --git a/service_nosu_test.go b/service_nosu_test.go index 97ee89d8..2b92aefb 100644 --- a/service_nosu_test.go +++ b/service_nosu_test.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a zlib-style // license that can be found in the LICENSE file. +//go:build !su // +build !su package service_test diff --git a/service_su_test.go b/service_su_test.go index 74eca3da..e0de2e82 100644 --- a/service_su_test.go +++ b/service_su_test.go @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. // This needs to be run as root/admin hence the reason there is a build tag +//go:build su // +build su package service_test diff --git a/servicetest_unix_test.go b/servicetest_unix_test.go index 1c174d7d..c4b0b3de 100644 --- a/servicetest_unix_test.go +++ b/servicetest_unix_test.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a zlib-style // license that can be found in the LICENSE file. +//go:build darwin || dragonfly || freebsd || linux || nacl || netbsd || openbsd || solaris // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris package service_test