keiranmraine / pidlock

Simple PID based locking for cronjobs, UNIX scripts or python programs
https://pypi.python.org/pypi/pidlock
MIT License
3 stars 2 forks source link
cron cron-jobs cronjob locking pid python-programming unix-scripts

pidlock

PyPI version CircleCI

Simple PID based locking for cronjobs, UNIX scripts or python programs. Copes with locking between hosts.

Requirement

Usage

sudo pip install -U pidlock
import time
from pidlock import PIDLock

locker = PIDLock()
with locker.lock('sleepy_script'):
    time.sleep(10)
# To display help menu
pidlock -h    # Or pidlock --help

# Example usage
pidlock -n sleepy_script -c 'sleep 10'

# Same as
pidlock --name sleepy_script --command 'sleep 10'

Customization:

# Python Usage
locker = PIDLock(lockdir='~/.pidlock', verbose=True)

with locker.lock('sleepy_script', wait=10, mininterval=1):
    time.sleep(10)
# Commandline usage
pidlock -n sleepy_script -c 'sleep 10' -l ~/.pidlock -v -w 10 -m 1

# Same as
pidlock --name sleepy_script --command 'sleep 10' --lockdir ~/.pidlock --verbose --wait 10 --mininterval 1

Contributions

Originally written and published by Arijit Basu. Adaptation to cope with race conditions by Keiran Raine (ongoing owner/support).