python - 子進(jìn)程執(zhí)行完成為僵尸進(jìn)程,怎么解決
問題描述
我有一腳本,去比較數(shù)據(jù)庫和一個(gè)配置文件中一個(gè)商品的數(shù)量。少幾個(gè)商品就開辟幾個(gè)進(jìn)程去創(chuàng)建商品、用的是subprocess.Popen 這個(gè)模塊 在這個(gè)監(jiān)控腳本中去創(chuàng)建子進(jìn)程去執(zhí)行一個(gè)創(chuàng)建的耗時(shí)操作。創(chuàng)建完子進(jìn)程后,主進(jìn)程所在的這個(gè)腳本就退出了 等待cronjob 定時(shí)任務(wù)下一次執(zhí)行。少幾個(gè)在創(chuàng)建幾個(gè)。但是現(xiàn)在發(fā)現(xiàn),創(chuàng)建的子線程在創(chuàng)建完商品。會(huì)成為僵尸進(jìn)程、這個(gè)怎么解決。
我看了網(wǎng)上的說的 讓主進(jìn)程等wait() 但是我這里不能讓主進(jìn)程等。因?yàn)樗舆M(jìn)程創(chuàng)建時(shí)一個(gè)耗時(shí)的操作,可能得好久。一個(gè)個(gè)等。主進(jìn)程就沒法發(fā)退出。那么監(jiān)控腳本就不起作用的 就不能及時(shí)補(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 - web移動(dòng)端 ? 版權(quán)這個(gè)字在安卓上默認(rèn)藍(lán)色顏色 怎么解決?2. javascript - H5移動(dòng)端下拉出現(xiàn)黑色背景怎么解決?3. javascript - 安裝vue-cli一直卡在這個(gè)狀態(tài)該怎么解決呢4. node.js - 帶有node_modules目錄的項(xiàng)目,用phpstorm打開速度極慢,怎么解決?5. c++ - 請問MySQL_Connection::isReadOnly 怎么解決?6. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?7. javascript - bootstrap table固定列之后寬度無法對齊怎么解決?8. javascript - react native在run-android時(shí)出現(xiàn)這個(gè)錯(cuò)誤該怎么解決?大神賜教9. javascript - 想讓圖片上那個(gè)塊,在增加塊的寬度的時(shí)候向右邊移動(dòng),而不是向左邊移動(dòng)。需要怎么解決?10. javascript - 前端開發(fā) 本地靜態(tài)文件頻繁修改,預(yù)覽時(shí)的緩存怎么解決?

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