#!/usr/bin/env python
import os
import subprocess
import signal
import sys
import time


# On Linux, could also use prctl to get a notification on parent death
def main():
    def sigint(sig, frame):
        if child is None:
            return
        child.kill()
        child.wait()
        os._exit(0)

    signal.signal(signal.SIGINT, sigint)
    if len(sys.argv) <= 1:
        sys.stderr.write(f"Usage: {sys.argv[0]} <subcommand to run>\n")
        return 1
    child = subprocess.Popen(sys.argv[1:], close_fds=False)
    while True:
        if os.getpid() == 1:
            break
        time.sleep(1)
    child.kill()
    child.wait()
    return 0


if __name__ == "__main__":
    sys.exit(main())
