- не сработает какой-либо заданный сигнал (сам сигнал можно игнорировать)
- дочерний процесс завершается
Что я пробовал:
#!/usr/bin/env python3
import signal
import os
import time
if __name__ == '__main__':
pid = None # initial value
try:
pid = os.fork()
if pid != 0: # parent
# Wait for child exit or SIGINT
# (should also work for signals other than SIGINT)
signal.sigwait({signal.SIGCHLD, signal.SIGINT})
print("Got signal")
# never reaching this statement by child exit
else: # child
time.sleep(3)
finally:
if pid is None: # fork failed
pass
elif pid == 0:
print("\nChild cleaning up")
else:
print("\nParent cleaning up")
Подробнее здесь: https://stackoverflow.com/questions/793 ... ermination
Мобильная версия