From 8a0130c9a69de7df36b92c94f50d4568501dea9b Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 14 Feb 2012 23:00:13 +0100 Subject: [PATCH] Remove pidfile before restarting --- CouchPotato.py | 12 +++++++++--- libs/daemon.py | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CouchPotato.py b/CouchPotato.py index 4529f7c..168f96a 100755 --- a/CouchPotato.py +++ b/CouchPotato.py @@ -62,6 +62,9 @@ class Loader(object): def restart(self): try: + # remove old pidfile first + if self.runAsDaemon(): + self.daemon.delpid() args = [sys.executable] + [os.path.join(base_path, __file__)] + sys.argv[1:] subprocess.Popen(args) except Exception, e: @@ -70,10 +73,13 @@ class Loader(object): def daemonize(self): - if self.options.daemon and self.options.pid_file: + if self.runAsDaemon(): from daemon import Daemon - daemon = Daemon(self.options.pid_file) - daemon.daemonize() + self.daemon = Daemon(self.options.pid_file) + self.daemon.daemonize() + + def runAsDaemon(self): + return self.options.daemon and self.options.pid_file if __name__ == '__main__': diff --git a/libs/daemon.py b/libs/daemon.py index ed9f2d7..0e3d0d6 100644 --- a/libs/daemon.py +++ b/libs/daemon.py @@ -64,7 +64,8 @@ class Daemon(): file(self.pidfile, 'w+').write("%s\n" % pid) def delpid(self): - os.remove(self.pidfile) + if os.path.exists(self.pidfile): + os.remove(self.pidfile) def start(self): """ @@ -112,8 +113,7 @@ class Daemon(): except OSError, err: err = str(err) if err.find("No such process") > 0: - if os.path.exists(self.pidfile): - os.remove(self.pidfile) + self.delpid() else: print str(err) sys.exit(1)