import threading import time import sys import signal if 'deadlock' in sys.argv: lock = threading.Lock() def trap(sig, frame): lock.acquire() # get the lock once lock.acquire() # and take it again on SIGTERM signal: deadlock. signal.signal(signal.SIGTERM, trap) while 1: time.sleep(1)