summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go')
-rw-r--r--dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go b/dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go
new file mode 100644
index 0000000..dd9d49e
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/okzk/sdnotify@v0.0.0-20180710141335-d9becc38acbd/sample/main.go
@@ -0,0 +1,57 @@
+package main
+
+import (
+ "log"
+ "os"
+ "os/signal"
+ "syscall"
+ "time"
+
+ "github.com/okzk/sdnotify"
+)
+
+func reload() {
+ // Tells the service manager that the service is reloading its configuration.
+ sdnotify.Reloading()
+
+ log.Println("reloading...")
+ time.Sleep(time.Second)
+ log.Println("reloaded.")
+
+ // The service must also send a "READY" notification when it completed reloading its configuration.
+ sdnotify.Ready()
+}
+
+func main() {
+ log.Println("starting...")
+ time.Sleep(time.Second)
+ log.Println("started.")
+
+ // Tells the service manager that service startup is finished.
+ sdnotify.Ready()
+
+ go func() {
+ tick := time.Tick(30 * time.Second)
+ for {
+ <-tick
+ log.Println("watchdog reporting")
+ sdnotify.Watchdog()
+ }
+ }()
+
+ sigCh := make(chan os.Signal, 1)
+ signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
+ for sig := range sigCh {
+ if sig == syscall.SIGHUP {
+ reload()
+ } else {
+ break
+ }
+ }
+
+ // Tells the service manager that the service is beginning its shutdown.
+ sdnotify.Stopping()
+
+ log.Println("existing...")
+ time.Sleep(time.Second)
+}