From 1a79b61dc4c278d0f7226c862f6abce75f1384ec Mon Sep 17 00:00:00 2001 From: Nick Irvine Date: Wed, 1 Feb 2017 18:10:51 -0800 Subject: [PATCH] Remove pidfile if pidfile was created Also, ensure pidfile perms are 644 --- cmd/telegraf/telegraf.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/telegraf/telegraf.go b/cmd/telegraf/telegraf.go index 398617e093511..2ec0b5c9d351d 100644 --- a/cmd/telegraf/telegraf.go +++ b/cmd/telegraf/telegraf.go @@ -271,14 +271,21 @@ func reloadLoop(stop chan struct{}, s service.Service) { log.Printf("I! Tags enabled: %s", c.ListTags()) if *fPidfile != "" { - f, err := os.Create(*fPidfile) + f, err := os.OpenFile(*fPidfile, os.O_CREATE|os.O_WRONLY, 0644) if err != nil { - log.Fatalf("E! Unable to create pidfile: %s", err) + log.Printf("E! Unable to create pidfile: %s", err) + } else { + fmt.Fprintf(f, "%d\n", os.Getpid()) + + f.Close() + + defer func() { + err := os.Remove(*fPidfile) + if err != nil { + log.Printf("E! Unable to remove pidfile: %s", err) + } + }() } - - fmt.Fprintf(f, "%d\n", os.Getpid()) - - f.Close() } ag.Run(shutdown)