python - 子進(jìn)程執(zhí)行完成為僵尸進(jìn)程,怎么解決
問題描述
我有一腳本,去比較數(shù)據(jù)庫和一個配置文件中一個商品的數(shù)量。少幾個商品就開辟幾個進(jìn)程去創(chuàng)建商品、用的是subprocess.Popen 這個模塊 在這個監(jiān)控腳本中去創(chuàng)建子進(jìn)程去執(zhí)行一個創(chuàng)建的耗時操作。創(chuàng)建完子進(jìn)程后,主進(jìn)程所在的這個腳本就退出了 等待cronjob 定時任務(wù)下一次執(zhí)行。少幾個在創(chuàng)建幾個。但是現(xiàn)在發(fā)現(xiàn),創(chuàng)建的子線程在創(chuàng)建完商品。會成為僵尸進(jìn)程、這個怎么解決。
我看了網(wǎng)上的說的 讓主進(jìn)程等wait() 但是我這里不能讓主進(jìn)程等。因為他子進(jìn)程創(chuàng)建時一個耗時的操作,可能得好久。一個個等。主進(jìn)程就沒法發(fā)退出。那么監(jiān)控腳本就不起作用的 就不能及時補(bǔ)充商品了。、主進(jìn)程的作用就是開辟進(jìn)程 然后等待下次掃描創(chuàng)建少的數(shù)量的進(jìn)程。
想問下大家怎么解決這種問題。父進(jìn)程不用等待子進(jìn)程結(jié)束,而不產(chǎn)生僵尸進(jìn)程。
問題解答
回答1:調(diào)用signal(SIGCHLD, SIG_IGN)通知內(nèi)核對子進(jìn)程的結(jié)束不關(guān)心,由內(nèi)核回收。
相關(guān)文章:
1. javascript - ios返回不執(zhí)行js怎么解決?2. javascript - react native在run-android時出現(xiàn)這個錯誤該怎么解決?大神賜教3. node.js - 安裝cordova時報錯,怎么解決?4. c++ - QWebEngineView加載url后直接點(diǎn)擊鏈接沒有反應(yīng)要怎么解決?5. javascript - bootstrap table固定列之后寬度無法對齊怎么解決?6. javascript - vue的這個打包錯誤怎么解決?7. javascript - vue: 父組件給子組件傳遞數(shù)據(jù),子組件接收到了,但是報錯,怎么解決?8. mysql - 我用SQL語句 更新 行的時候,發(fā)現(xiàn)全部 中文都被清空了,請問怎么解決?9. javascript - 想讓圖片上那個塊,在增加塊的寬度的時候向右邊移動,而不是向左邊移動。需要怎么解決?10. node.js - webpack打包報javaScript heap out of memory,怎么解決?

網(wǎng)公網(wǎng)安備