diff --git a/src/netnode.py b/src/netnode.py --- a/src/netnode.py +++ b/src/netnode.py @@ -1,4 +1,5 @@ import os +from datetime import datetime import socket import logging as log @@ -62,7 +63,15 @@ class NetNode: f = open(lock_file, "x") f.close() except FileExistsError: - raise LockedException() + stat = os.stat(lock_file) + dt = datetime.now().timestamp()-stat.st_mtime + if dt<5*60: + raise LockedException() + log.warning("Found an old lock file ({0}s), ignoring it.".format(round(dt))) + self._refresh_lock() + + def _refresh_lock(self): + os.utime(lock_file) def _unlock(self): os.remove(lock_file)