Gegeben zu handhaben, dass, wenn die folgenden Code wie folgt ausgeführt: „hallo“wie ein Signal
cli()
einige Konfigurationsdateienblabla()
druckt eine Nachricht parst- diese 2 Funktionen sind die einzigen, die in
main()
cli()
ist auch der Signal-Handler vonSIGUSR2
Hier wird das Snippet:
def cli():
parser = argparse.ArgumentParser()
parser.add_argument("--logger-file", dest="logger_file", required=True, help="YAML logging configuration file")
parser.add_argument("--conf-file", dest="conf_file", required=True, help="app configuration file")
args = parser.parse_args()
setup_logger(args.logger_file)
commit_conf(args.conf_file)
def blabla():
while True:
logger.info("hi!")
time.sleep(60)
def recv_sigusr2(signum, stack):
cli()
def main():
cli()
signal.signal(signal.SIGUSR2, recv_sigusr2)
blabla()
if __name__ == "__main__":
main()
Die Frage ist:
- warum
blabla()
läuft jedes Mal, wenn ich sendin gSIGUSR2
signal, da nur der Signal-Handler nurcli()
aufruft? - wie läuft nur
cli()
erreicht werden kann (ohneblabla()
anrufen)?