在window下如何殺死一個線程;
1.1. 方法一:根據pid 殺死線程
下面cmd 控制台的顯示的界面
C:\Users\aiju>netstat -ano|findstr 8080 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 11940 TCP [::]:8080 [::]:0 LISTENING 11940 C:\Users\aiju>taskkill /pid 11940 -t -f
成功: 已終止 PID 11940 (屬於 PID 2780 子進程)的進程。
1:使用命令
netstat -ano|findstr 8080
netstat -ano 查找所有的端口占用
findstr 表示的是 管道,添加條件
2. 殺死這個線程
11940 是線程的編號。根據實際的情況進行修改;
taskkill /pid 11940 -t -f
1.2. 可以使用根據線程的名稱殺死線程;
執行的命令
C:\Users\aiju>netstat -ano |findstr 8080 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5924 TCP [::]:8080 [::]:0 LISTENING 5924 C:\Users\aiju>tasklist | findstr 5924 javaw.exe 5924 Console 3 273,492 K C:\Users\aiju>taskkill /im javaw.exe /f 成功: 已終止進程 "javaw.exe",其 PID 為 5924。
1. netstat -ano|findstr 8080 找到占用的端口的pid
2. tasklist | find {占用的pid} 找到占用的程序的 名稱
3. 殺死當前的占用的程序
在Linux
#!/bin/sh TOM_HOME=$(cd `dirname $0`;cd ..;pwd) ps -ef|grep $TOM_HOME|grep -v grep|grep -v kill if [ $? -eq 0 ];then kill -9 `ps -ef|grep $TOM_HOME|grep -v grep|grep -v kill|awk '{print $2}'` else echo $TOM_HOME' No Found Process' fi
中,我們經常使用“ps -ef|grep tomcat” 查看進程,如下圖是我操作的服務器上使用該命令后查看的結果:
可以看到,除了3個紫色的tomcat外,還會有一個該命令的進程。
如果想排除掉那個紅色框的當前進程,可以在原來命令后面增加一段參數過濾,如下:
ps -ef|grep tomcat|grep -v grep
只所以這樣做,是因為我個人有個需求:寫一個sh腳本放在tomcat/bin目錄下,kill掉當前tomcat的進程。
編寫 kill.sh 腳本,並將該腳本放在 tomcat/bin 目錄下,內容如下:
資料來源:
http://blog.csdn.net/u012523921/article/details/51839450
http://blog.csdn.net/yels303/article/details/50900127
http://blog.csdn.net/catoop/article/details/49557967