不要使用kill -9 殺死程序,可以先使用kill -15
Perl語言專家Randal Schwartz在一篇短文裡這樣寫:
no no no.不要使用kill -9.
它沒有給程序留下善後的機會:
1) 關閉socket連結
2) 清理臨時檔案
3) 將自己將要被銷燬的訊息通知給子程序
4) 重置自己的終止狀態
等等。
通常,應該傳送
15
,等一兩秒鐘,如果沒效果,傳送2
,如果還不行,傳送1
。如果還不行,那你應該把那個程式刪掉,因為那個程式寫的太爛了!不要使用
kill -9
。不要用收割機來修剪花盆裡的花。
總之,在使用kill -9
前,你應該先使用kill -15
,給目標程序一個清理善後工作的機會。(程序也許無法捕捉或直接忽略SIGKILL
SIGTERM
訊號的。)如果你不留機會讓程序完成清理工作,它們會留下一些不完整的檔案或狀態,當系統重啟時,程式將無法理解這些狀態。
strace
/truss
,ltrace
和gdb
都是檢視一個卡住的程序因何卡住的好工具。(Solaris裡的truss -u
非常好用;)Solaris裡還有一些非常有用的/proc
相關的工具,有一些已經被移植到了Linux上。
相關推薦
不要使用kill -9 殺死程序,可以先使用kill -15
Perl語言專家Randal Schwartz在一篇短文裡這樣寫: no no no.不要使用kill -9. 它沒有給程序留下善後的機會: 1) 關閉socket連結 2) 清理臨時檔案 3) 將自己將要被銷燬的訊息通知給子程序 4) 重置自己的終止狀
linux系統tomcat應為被定時任務指令碼監控自動部署,伺服器重啟導致同一個tomcat出現很多程序,kill -9殺死又出現等一系列問題解決。
linux系統tomcat應為被定時任務指令碼監控自動部署,伺服器重啟導致同一個tomcat出現很多程序,kill -9殺死又出現等一系列問題解決。 #ps -ef|grep tomcat檢視tom
db2 kill- 9殺掉程序後 重新啟動報錯
關於啟動db2start 報錯: [[email protected] ~]$ db2start 10/01/2012 08:53:27 0 0 SQL1072C The database manager resources are in an
通過ps、grep和kill批量殺死程序
原文: http://www.hellosee.cc/2016/10/520.html ps aux|grep server|grep -v grep | awk '{print $2}'|xargs kill -9 下面將這條命令作一下簡單說明: 管道符”|”用來隔開兩個命令
mysql使用kill無法殺死程序
在公司一次系統關機後,重啟機器,系統啟動了自帶的mysql程序,想要啟動自己所需配置檔案的mysql,就要殺掉預設的mysql。 使用kill -9 +pid號,mysql不但沒被殺掉,而且換了一個p
Linux 殺死程序方法大全(kill,killall)
註釋:標準的kill命令通常都能達到目的。終止有問題的程序,並把程序的資源釋放給系統。然而,如果程序啟動了子程序,只殺死父程序,子程序仍在執行,因此仍消耗資源。為了防止這些所謂的“殭屍程序”,應確保在殺死父程序之前,先殺死其所有的子程序。
【Linux中檢視和殺死程序】-kill -9 無條件殺死
首先檢視程序: [[email protected] /]# ps -ef | grep tomcat root 1726 1 0 Apr10 ? 00:07:20 /usr/java/jdk1.6.0_22//bin/java
kill -9 pid殺不掉的程序
準備殺掉mysql的程序,可是似乎沒有效果: 結果: 解決方法: 檢視是不是有殭屍程序 發現把自己的root給殺死了。。。然後重新獲得超級管理員許可權 終於殺死了 可是,現在細想發現,之前kill mysql的時候,
linux下kill -9 不能強制殺掉spark-submit程序
問題: 在python編輯器中執行spark程式時,忘記加spark.stop()停止spark,所以每提交一次程式就多一個spark-submit程序,而且sparkUI的埠號還被佔用了。這時候用 kill -9 spark-submit_pid 無法殺死spark-submit程序
嵌入式Linux併發程式設計,程序間通訊方式,訊號,訊號機制,檢視新號kill -l,常用訊號,發訊號命令kill [-signal] pid、killall [-u user | prog]
1,訊號機制 訊號是在軟體層次上對中斷機制的一種模擬,是一種非同步通訊方式 (一個程序在任何條件下,都可以隨時的接收訊號,不需要其他的處理) Linux核心通過訊號通知使用者程序,不同的訊號型別代表不同的事件 Linux對早期的unix訊號機制進行了擴充
linux下殺死程序(kill)的N種方法 包括python–killproc
使用 pip 安裝 一般的殺死程序過程如下 $ ps -ef | grep django-admin.py | grep -v grep 501 20060 1 0 0:00.11 ttys001 0:00.38 python django-adm
linux下殺死程序(kill)的N種方法
檢視程序: 1、ps 命令用於檢視當前正在執行的程序。 grep 是搜尋 例如: ps -ef | grep java 表示檢視所有程序裡 CMD 是 java 的程序資訊 2、ps -aux | grep java -aux 顯示所有狀態 ps
linux kill -9 殺不掉的程序
kill -9 傳送SIGKILL訊號給程序,將其終止,但對於以下兩種情況不適用 1.該程序是殭屍程序(STAT z),此時程序已經釋放所有的資源,但是沒有被父程序釋放。殭屍程序要等到父程序結束,或者重啟系統才可以被釋放。 2.程序處於“核心態”,並且在等待不可獲得的資源,
linux下kill -9 pid 強制不能殺掉程序
Question linux下kill -9 pid 強制不能殺掉某個程序原因 Answer 解決辦法: 貌似沒用好的解決辦法, 重啟電腦reboot一下吧. Reference 今天安裝叢集的時候,發現一個程序一直存在,kill -9 pid
【轉】linux下殺死程序(kill)的N種方法
轉載一篇,最原始的出處已不可考,望見諒! 常規篇: 首先,用ps檢視程序,方法如下: $ ps -ef …… smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1
Linux殺死程序命令:kill、killall、pkill
kill命令: 1.格式:kill [訊號] 程序id 2..檢視經常訊號:kill -l 3.常用命令:
殺死程序kill和fuser
1 kill -9 id 2 不行的話使用 fuser -k -SIGHUP /opt/bre/cookiemapping/wsapi/123 fuser有一個特別的用法在於它可以一次殺死那些正在訪問指定檔案的程序 一,為什麼要使用fuser? 先說 fu
linux下kill -9 pid 強制不能殺掉程序原因
今天安裝叢集的時候,發現一個程序一直存在,kill -9 pid 也幹不掉,就找找原因了。 kill -9傳送SIGKILL訊號將其終止,但是以下兩種情況不起作用:a、該程序處於"Zombie"狀態(使用ps命令返回defunct的程序)。此時程序已經釋放所有資源,但還未得到其父程序的確認。"zombie"
檢視Linux端口占用,並kill掉相關程序
話不多說,本文介紹Linux常規操作:檢視端口占用程序,根據PID kill掉相關程序。另外補充:根據程式名檢視程序PID。 首先,兩條命令,lsof命令和netstat命令。方式一:lsof命令1、檢視佔用埠程序的PID:lsof -i:{埠號}2、根據PID
kill及kill -9的用法及如何實現程序的優雅退出
kill pid與kill -9 pid的區別 kill pid的作用是向程序號為pid的程序傳送SIGTERM(這是kill預設傳送的訊號),該訊號是一個結束程序的訊號且可以被應用程式捕獲。若應用程式沒有捕獲並響應該訊號的邏輯程式碼,則該訊號的預設動