1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#!/usr/bin/env python3
import shutil
import os
import time
import signal
import atexit
import sys
import argparse
def cleanup(path):
time.sleep(2)
shutil.rmtree(path, ignore_errors=True)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('path')
args = parser.parse_args()
def handler(signum, frame):
cleanup(args.path)
sys.exit(-1)
signal.signal(signal.SIGPIPE, handler)
signal.signal(signal.SIGSEGV, handler)
signal.signal(signal.SIGTERM, handler)
signal.signal(signal.SIGINT, handler)
atexit.register(lambda: cleanup(args.path))
while os.getppid() != 1: time.sleep(1)
cleanup(args.path)
|