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. java - 我用Tomcat訪問(wèn)SQL server數(shù)據(jù)庫(kù)時(shí),出現(xiàn)以下錯(cuò)誤,該怎么解決?2. 路由 - nginx訪問(wèn)不了根目錄下的文件怎么解決?3. mysql - 我用SQL語(yǔ)句 更新 行的時(shí)候,發(fā)現(xiàn)全部 中文都被清空了,請(qǐng)問(wèn)怎么解決?4. mysql - workbench 切換中文無(wú)效怎么解決??5. sublime-text - 怎么解決sublime 編譯node.js代碼時(shí)出現(xiàn)[Decode error - output not utf86. 安裝時(shí)遇到問(wèn)題,不知道怎么解決?7. $fields = $values = [];這條代碼一直定義不了,一直報(bào)錯(cuò),老師的源碼也是被報(bào)錯(cuò)的,執(zhí)行不了,請(qǐng)問(wèn)該怎么解決這個(gè)問(wèn)題8. 請(qǐng)問(wèn)這個(gè)怎么解決?9. 重定向次數(shù)過(guò)多怎么解決10. 后臺(tái)登陸的CSS和圖片加載不出來(lái),查看之后發(fā)現(xiàn)沒(méi)有響應(yīng)怎么解決
