python - 子進(jìn)程執(zhí)行完成為僵尸進(jìn)程,怎么解決
問(wèn)題描述
我有一腳本,去比較數(shù)據(jù)庫(kù)和一個(gè)配置文件中一個(gè)商品的數(shù)量。少幾個(gè)商品就開(kāi)辟幾個(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)上的說(shuō)的 讓主進(jìn)程等wait() 但是我這里不能讓主進(jìn)程等。因?yàn)樗舆M(jìn)程創(chuàng)建時(shí)一個(gè)耗時(shí)的操作,可能得好久。一個(gè)個(gè)等。主進(jìn)程就沒(méi)法發(fā)退出。那么監(jiān)控腳本就不起作用的 就不能及時(shí)補(bǔ)充商品了。、主進(jìn)程的作用就是開(kāi)辟進(jìn)程 然后等待下次掃描創(chuàng)建少的數(shù)量的進(jìn)程。
想問(wèn)下大家怎么解決這種問(wèn)題。父進(jìn)程不用等待子進(jìn)程結(jié)束,而不產(chǎn)生僵尸進(jìn)程。
問(wèn)題解答
回答1:調(diào)用signal(SIGCHLD, SIG_IGN)通知內(nèi)核對(duì)子進(jìn)程的結(jié)束不關(guān)心,由內(nèi)核回收。
相關(guān)文章:
1. HTML5禁止img預(yù)覽該怎么解決?2. javascript - 請(qǐng)問(wèn)一下fullpage只能初始化一次的問(wèn)題怎么解決?3. javascript - 蘋(píng)果手機(jī)下面css3動(dòng)畫(huà)效果出不來(lái),請(qǐng)問(wèn)要怎么解決呢?4. javascript - ios返回不執(zhí)行js怎么解決?5. javascript - bootstrap table固定列之后寬度無(wú)法對(duì)齊怎么解決?6. $fields = $values = [];這條代碼一直定義不了,一直報(bào)錯(cuò),老師的源碼也是被報(bào)錯(cuò)的,執(zhí)行不了,請(qǐng)問(wèn)該怎么解決這個(gè)問(wèn)題7. javascript - vue的這個(gè)打包錯(cuò)誤怎么解決?8. javascript - css怎么解決hover鼠標(biāo)移除后的效果9. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見(jiàn)卻不可觸,怎么解決?10. javascript - 圖片鏈接請(qǐng)求一直是pending狀態(tài),導(dǎo)致頁(yè)面崩潰,怎么解決?
