From b433072da7901923e206d8b9e4b92bd85b870661 Mon Sep 17 00:00:00 2001 From: Masahiro Nagano Date: Sat, 23 Feb 2019 01:00:34 +0900 Subject: [PATCH] remove pidfile when error --- pidfile/pidfile.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pidfile/pidfile.go b/pidfile/pidfile.go index 61236e7..f4f4831 100644 --- a/pidfile/pidfile.go +++ b/pidfile/pidfile.go @@ -14,17 +14,19 @@ func WritePid(pidfile string) error { dir, filename := filepath.Split(pidfile) tmpfile, err := ioutil.TempFile(dir, filename+".*") if err != nil { - return errors.Wrap(err, "Cloud not create tempfile") + return errors.Wrap(err, "Could not create tempfile") } _, err = tmpfile.WriteString(fmt.Sprintf("%d", os.Getpid())) if err != nil { tmpfile.Close() - return errors.Wrap(err, "Cloud not write pid to tempfile") + os.Remove(tmpfile.Name()) + return errors.Wrap(err, "Could not write pid to tempfile") } tmpfile.Close() err = os.Rename(tmpfile.Name(), pidfile) if err != nil { - return errors.Wrap(err, "Cloud not rename pidfile") + os.Remove(tmpfile.Name()) + return errors.Wrap(err, "Could not rename pidfile") } return nil }