class LockFile(object):
"""A file locking mechanism that has context-manager support so you
- can use it in a with statement.
+ can use it in a with statement. e.g.
+
+ with LockFile('./foo.lock'):
+ # do a bunch of stuff... if the process dies we have a signal
+ # handler to do cleanup. Other code (in this process or another)
+ # that tries to take the same lockfile will block. There is also
+ # some logic for detecting stale locks.
+
"""
def __init__(
cmd = self.override_command
else:
cmd = ' '.join(sys.argv)
+ print(cmd)
contents = LockFileContents(
pid = os.getpid(),
- cmd,
+ commandline = cmd,
expiration_timestamp = self.expiration_timestamp,
)
return json.dumps(contents.__dict__)