殺死進(jìn)程最安全的方法是單純使用kill命令,不加修飾符,不帶標(biāo)志。
首先使用ps -ef命令確定要?dú)⑺肋M(jìn)程的PID,然后輸入以下命令:
# kill -pid
到了這里,原因就非常明了了,由于log輸出在項(xiàng)目中使用非常頻繁,而寫(xiě)log時(shí)又需要重復(fù)調(diào)用fopen()和fclose打開(kāi)關(guān)閉文件,這對(duì)io的操作是比較費(fèi)時(shí)間的,導(dǎo)致某些線程在此處由于等待超時(shí)被終止(由于其他mutex是可跨進(jìn)程的,所以其他進(jìn)程中的線程意外終止或進(jìn)程未正常退出都會(huì)有此問(wèn)題),進(jìn)而導(dǎo)致mutex未被釋放處于廢棄狀態(tài)。
android會(huì)盡量保留一個(gè)正在運(yùn)行進(jìn)程,只在內(nèi)存資源出現(xiàn)不足時(shí),android 會(huì)嘗試停止一些進(jìn)程從而釋放足夠的資源給其他新的進(jìn)程使用, 也能保證用戶正在訪問(wèn)的當(dāng)前進(jìn)程有足夠的資源去及時(shí)地響應(yīng)用戶的事件。
ps命令就是最根本相應(yīng)情況下也是相當(dāng)強(qiáng)大地進(jìn)程查看命令.運(yùn)用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行地狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多地資源等等.總之大部分信息均為可以通過(guò)執(zhí)行該命令得到地.。
死鎖產(chǎn)生的現(xiàn)場(chǎng):當(dāng)a進(jìn)程p s2信號(hào)量而b進(jìn)程p s1信號(hào)量時(shí)就會(huì)產(chǎn)生死鎖,因?yàn)閟2信號(hào)量需要b進(jìn)程釋放,而s1信號(hào)量需要a進(jìn)程釋放,因此兩個(gè)進(jìn)程都在等相互的資源,造成死鎖。
確定要?dú)⑺肋M(jìn)程的PID或PPID
# ps -ef | grep httpd
以優(yōu)雅的方式結(jié)束進(jìn)程
# kill -l PID
然后使用kill命令殺死進(jìn)程,這樣才能正常關(guān)機(jī)。
為此我們可以考慮使用程序來(lái)殺死fork炸彈產(chǎn)生的進(jìn)程,但由于這一般需要?jiǎng)?chuàng)建新進(jìn)程,且由于fork炸彈一直在探測(cè)與占用進(jìn)程槽與內(nèi)存空間,因而這一方法幾乎不可能實(shí)現(xiàn),而且用kill命令殺死進(jìn)程后,釋放出的進(jìn)程槽又會(huì)被余下的fork炸彈線程所產(chǎn)生的新進(jìn)程占用,。
kill 殺死進(jìn)程,可以先用ps 或 top命令查看進(jìn)程的id,然后再用kill命令殺死進(jìn)程。
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進(jìn)程,如果有使用“kill -9 進(jìn)程號(hào)”殺死,然后重新啟動(dòng)mysqld。
TERM信號(hào)
給父進(jìn)程發(fā)送一個(gè)TERM信號(hào),試圖殺死它和它的子進(jìn)程。
# kill -TERM PPID
killall命令
killall命令殺死同一進(jìn)程組內(nèi)的所有進(jìn)程。其允許指定要終止的進(jìn)程的名稱,而非PID。
killall httpd
停止和重啟進(jìn)程
有時(shí)候只想簡(jiǎn)單的停止和重啟進(jìn)程。如下:
# kill -HUP PID
該命令讓Linux和緩的執(zhí)行進(jìn)程關(guān)閉,然后立即重啟。在配置應(yīng)用程序的時(shí)候,這個(gè)命令很方便,在對(duì)配置文件修改后需要重啟進(jìn)程時(shí)就可以執(zhí)行此命令。
絕殺kill -9 PID
同意的kill -s SIGKILL
這個(gè)強(qiáng)大和危險(xiǎn)的命令迫使進(jìn)程在運(yùn)行時(shí)突然終止,進(jìn)程在結(jié)束后不能自我清理。危害是導(dǎo)致系統(tǒng)資源無(wú)法正常釋放,一般不推薦使用,除非其他辦法都無(wú)效。
當(dāng)使用此命令時(shí),一定要通過(guò)ps -ef確認(rèn)沒(méi)有剩下任何僵尸進(jìn)程。只能通過(guò)終止父進(jìn)程來(lái)消除僵尸進(jìn)程。如果僵尸進(jìn)程被init收養(yǎng),問(wèn)題就比較嚴(yán)重了。殺死init進(jìn)程意味著關(guān)閉系統(tǒng)。
fork炸彈生成的子程序在消耗進(jìn)程表空間的同時(shí)也會(huì)占用cpu和內(nèi)存,從而導(dǎo)致系統(tǒng)與現(xiàn)有進(jìn)程運(yùn)行速度放緩,響應(yīng)時(shí)間也會(huì)隨之大幅增加,以致于無(wú)法正常完成任務(wù),從而使系統(tǒng)的正常運(yùn)作受到嚴(yán)重影響。
該產(chǎn)品具有針對(duì)系統(tǒng)緩存,也就是說(shuō)如果在掃描過(guò)程中沒(méi)有被修改,一個(gè)文件不會(huì)被掃描多次,因此沒(méi)有不必要的裝載從而優(yōu)化了系統(tǒng)性能.清除鎖定文件中的病毒,對(duì)于系統(tǒng)正在調(diào)用的文件通常不能被清除病毒,可以用緊急啟動(dòng)盤進(jìn)行病毒的清除.掃描所有在內(nèi)存中的進(jìn)程.對(duì)整個(gè)系統(tǒng)進(jìn)行永久保護(hù),常駐文件掃描是可配置的并且可以檢測(cè)出任意層壓縮文件中的惡意代碼.互聯(lián)網(wǎng)常駐掃描可以分析所有收發(fā)郵件(pop3,smtp,nntp),包括郵件信息和附件.可以檢測(cè)和清除壓縮文件和任何類型的嵌入信息或多層嵌套郵件中的病毒.另外,該軟件可以檢測(cè)和清除從互聯(lián)網(wǎng)下載的文件中的病。
這個(gè)電量要看系統(tǒng)顯示的電量,方便且準(zhǔn)確,沖到96%就可以停了,內(nèi)存管理非常嚴(yán)謹(jǐn),相較過(guò)去的電池,這種電池更適合淺放淺沖,iphone運(yùn)行的是ios系統(tǒng),而且過(guò)度充電有爆炸危險(xiǎn),系統(tǒng)會(huì)自動(dòng)回收內(nèi)存,蘋果的電池可以充放電400后仍能保證良好的性能,幸好人不在,這樣做是可以延長(zhǎng)充一次電后的使用時(shí)間別聽(tīng)360瞎扯淡,那么這個(gè)數(shù)字就會(huì)縮水,也就是說(shuō)當(dāng)電量低于30%時(shí)最好開(kāi)始充電,系統(tǒng)會(huì)結(jié)束其它進(jìn)程并壓縮系統(tǒng)自身占用,但是對(duì)于電池的長(zhǎng)期使用很不利。
首先,所有的agent在supervise的方式下啟動(dòng),如果進(jìn)程死掉會(huì)被系統(tǒng)立即重啟,以提供服務(wù)。
以上是Linux殺死進(jìn)程方法大全的內(nèi)容,更多的內(nèi)容,請(qǐng)您使用搜索功能獲取相關(guān)信息。
相關(guān)文章
新鮮出爐的原創(chuàng) Material Design Axure 元件庫(kù)分享
安卓中選擇系統(tǒng)圖庫(kù)的圖片及調(diào)用相機(jī)的源碼(原創(chuàng))
面向?qū)ο蟮牧笤瓌t(三)-- 里氏替換原則
喝酒不騎馬的Android自學(xué)日記(15)-ScrollView