1. 程式人生 > >linux下kill -9 不能強制殺掉spark-submit程序

linux下kill -9 不能強制殺掉spark-submit程序

問題:

在python編輯器中執行spark程式時,忘記加spark.stop()停止spark,所以每提交一次程式就多一個spark-submit程序,而且sparkUI的埠號還被佔用了。這時候用

kill -9 spark-submit_pid

無法殺死spark-submit程序

原因: 

kill -9傳送SIGKILL訊號將其終止,但是以下兩種情況不起作用:

a、該程序處於"Zombie"狀態(使用ps命令返回defunct的程序)。此時程序已經釋放所有資源,但還未得到其父程序的確認。"Zombie"程序要等到下次重啟時才會消失,但它的存在不會影響系統性能。

"Zombie"程序即所謂的“殭屍程序”,相關概念參考:

孤兒程序與殭屍程序[總結]

LINUX 的殭屍(ZOMBIE)程序

b、 該程序處於"kernel mode"(核心態)且在等待不可獲得的資源。處於核心態的程序忽略所有訊號處理,因此對於這些一直處於核心態的程序只能通過重啟系統實現。程序在AIX 中會處於兩種狀態,即使用者態和核心態。只有處於使用者態的程序才可以用“kill”命令將其終止 

解決辦法:

目前找到的解決辦法只能重啟,,,

參考文獻:

 

kill -9 殺不死的程序處理辦法

linux下kill -9 pid 強制不能殺掉程序原因