在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  C  Linux  網(wǎng)絡(luò)安全/ python3在windows環(huán)境下如何異步獲得子進程結(jié)束的信號

python3在windows環(huán)境下如何異步獲得子進程結(jié)束的信號

  1. 如題,我用subprocess創(chuàng)建了一個子進程,這個進程可能要運行很長時間,所以在linux下可以給父進程注冊了SIGCHLD信號,查資料后大致代碼如下,當(dāng)子進程退出時父進程獲取這個信號進行相應(yīng)處理。但是移植到windows下,并沒有這個信號,需要如何處理呢?
  2. 目前關(guān)鍵部分代碼如下:
def exit_hanlder(signum, frame):
    logging.info('receive SIGCHLD')
    try:
        while True:
            cpid, status = os.waitpid(-1, os.WNOHANG)
            if cpid == 0:
                logging.info('no child process was immediately available')
                break
            exitcode = status >> 8
            logging.info('child process %s exit with exitcode %s', cpid, exitcode)
    except OSError as e:
        if e.errno == errno.ECHILD:
            logging.warning('current process has no existing unwaited-for child processes.')
        else:
            raise
    logging.info('handle SIGCHLD end')

signal.signal(signal.SIGCHLD, exit_hanlder)
回答
編輯回答
涼心人

可以參考這個回答,調(diào)用 WaitForMultipleObjects API

https://stackoverflow.com/que...

2018年9月17日 14:48