linux下kill -9 pid 強制不能殺掉程序原因
今天安裝叢集的時候,發現一個程序一直存在,kill -9 pid 也幹不掉,就找找原因了。
kill -9傳送SIGKILL訊號將其終止,但是以下兩種情況不起作用:
a、該程序處於"Zombie"狀態(使用ps命令返回defunct的程序)。此時程序已經釋放所有資源,但還未得到其父程序的確認。"zombie"程序要等到下次重啟時才會消失,但它的存在不會影響系統性能。
b、 該程序處於"kernel mode"(核心態)且在等待不可獲得的資源。處於核心態的程序忽略所有訊號處理,因此對於這些一直處於核心態的程序只能通過重啟系統實現。程序在AIX 中會處於兩種狀態,即使用者態和核心態。只有處於使用者態的程序才可以用“kill”命令將其終止。
用top命令檢視發現zombie程序數是0,看來這三個程序不屬於殭屍程序,應該是b這中情況,就是這些程序進入核心態等待磁碟資源時出現磁碟空間不足的故障,這時我強制關閉了資料庫,所以這幾個程序就一直處於核心態無法被殺除,看來只能重啟了。
相關推薦
linux下kill -9 pid 強制不能殺掉程序
Question linux下kill -9 pid 強制不能殺掉某個程序原因 Answer 解決辦法: 貌似沒用好的解決辦法, 重啟電腦reboot一下吧. Reference 今天安裝叢集的時候,發現一個程序一直存在,kill -9 pid
linux下kill -9 pid 強制不能殺掉程序原因
今天安裝叢集的時候,發現一個程序一直存在,kill -9 pid 也幹不掉,就找找原因了。 kill -9傳送SIGKILL訊號將其終止,但是以下兩種情況不起作用:a、該程序處於"Zombie"狀態(使用ps命令返回defunct的程序)。此時程序已經釋放所有資源,但還未得到其父程序的確認。"zombie"
linux下kill -9 不能強制殺掉spark-submit程序
問題: 在python編輯器中執行spark程式時,忘記加spark.stop()停止spark,所以每提交一次程式就多一個spark-submit程序,而且sparkUI的埠號還被佔用了。這時候用 kill -9 spark-submit_pid 無法殺死spark-submit程序
Linux 下啟動、關閉tomcat 殺掉程序等命令
sun 5144 1 0 10:21 pts/1 00:00:06 /Java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/co
kill -9 pid殺不掉的程序
準備殺掉mysql的程序,可是似乎沒有效果: 結果: 解決方法: 檢視是不是有殭屍程序 發現把自己的root給殺死了。。。然後重新獲得超級管理員許可權 終於殺死了 可是,現在細想發現,之前kill mysql的時候,
04.linux命令-kill pid和kill -9 pid
今天學習到關於程序的一些東西,然後百度了下kill。以前我們在測試時也會用到kill的命令去殺程序,有的時候會用kill -9,但從沒想過這兩者的區別。今天算是明白了一點吧,以後如果有什麼領悟,會再做補充。 1)kill [[email protected] opt]# kil
linux下kill多個程序
工作中經常需要Kill多個程序,如果這些程序有共同的特點,就可以用一條命令Kill掉它們。比如清除Oracle資料庫的所有遠端連線程序: ps -efww|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
Linux下通過源碼編譯安裝程序
安裝程序 configure 系統目錄 install 命令 com 需要 figure .com ASK: Linux下通過源碼編譯安裝程序(configure/make/make install的作用) configure Linux 平臺有各種不同的配置,安裝時需
java動態執行程式碼或者第三方程式並返回pid,殺掉程序
java動態執行程式碼或者第三方程式並返回pid,殺掉程序 使用java動態執行Java程式碼或者呼叫第三方軟體,如下程式碼即可 Process child = Runtime.getRuntime().exec(cmd); 只要寫好cmd命令即可,如何同時返回程序的pid呢,這樣可
LINUX下C++程式設計如何獲得某程序的ID
#include <stdio.h> #include <stdlib.h> #include <unistd.h> using namespace std; pid_t getProcessPidByName(const char *proc_name) {
Linux下啟動停止檢視殺死Tomcat程序
啟動 一般是執行tomcat/bin/startup.sh,sh tomcat/bin/startup.sh 停止 一般是執行 sh tomcat/bin/shutdown.sh指令碼命令 檢視 執行ps -ef |grep tomcat 輸出如下 sun 5144
linux中kill -HUP pid命令是幹什麼的?
kill -HUP pid pid 是程序標識。如果想要更改配置而不需停止並重新啟動服務,請使用該命令。在對配置檔案作必要的更改後,發出該命令以動態更新服務配置。 根據約定
linux下的C語言開發(程序等待)
【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 所謂程序等待,其實很簡單。前面我們說過可以用fork建立子程序,那麼這裡我們就可以使用wait函式讓父程序等待子程序執行結束後才開始執行。注意,為了證明父程序確實是等
linux下的多執行緒/多程序同步/通訊機制
while (1) { //這個mutex主要是用來保證pthread_cond_wait的併發性 pthread_mutex_lock(&mtx); while (head == NULL) {
Linux下如何用/proc命令查詢程序狀態資訊——當前目錄,記憶體佔用,描述符等
參加阿里的面試,問到一個問題,如何在Linux下使用命令列查詢程序的狀態資訊,比如程序的當前目錄,程序的記憶體佔用等情況。當時的第一反應是使用top命令能夠得到所有的程序資訊。但是面試官好像不是很滿意,因此我回去之後查閱了相關的資料,發現可能他想問的/proc目錄,我這裡整
linux下C 程式設計學習之多程序程式設計(一)
一、程序概念 程序是作業系統中資源分配的最小單位,而執行緒是排程的最小單位。 一個程序,主要包含三個元素: a) 一個可以執行的程式; b) 和該程序相關聯的全部資料(包括變數,記憶體空間,緩衝區等等); c) 程式的執行上下文(
系統技術非業餘研究 » Linux下誰在切換我們的程序
我們在做Linux伺服器的時候經常會需要知道誰在做程序切換,什麼原因需要做程序切換。 因為程序切換的代價很高,我給出一個LMbench測試出來的數字: Context switching – times in microseconds – smaller is better ———————————
系統技術非業餘研究 » Linux下如何知道檔案被那個程序寫
晚上朔海同學問: 一個檔案正在被程序寫 我想檢視這個程序 檔案一直在增大 找不到誰在寫 使用lsof也沒找到 這個問題挺有普遍性的,解決方法應該很多,這裡我給大家提個比較直觀的方法。 linux下每個檔案都會在某個塊裝置上存放,當然也都有相應的inode, 那麼透過vfs.write我們就可以知道
Linux 下 popen 函式引起的殭屍程序 defunct 以及解決辦法
在使用 popen 函式的時候,如果不注意的話,可能會引起殭屍程序 defunct 的存在,雖然該程序不佔用記憶體和 CPU,但是會在程序任務管理樹上佔用一個寶貴的節點。這樣就造成了程序名額的資源浪費,所以一定得處理殭屍程序! 下面以 python 為例來
linux下的執行緒ID和程序ID
在描述執行緒ID和程序ID之前我們先來分清楚幾個概念: 1. 使用者級執行緒和核心級執行緒 什麼是使用者級執行緒? 使用者級執行緒核心的切換由使用者態程式自己控制核心切換,不需要