今天一不小心關(guān)掉了bash shell, 發(fā)現(xiàn)生成本地靜態(tài)服務(wù)器的后臺(tái)進(jìn)程沒(méi)有關(guān)閉。然而jobs 和 fg %1 命令已經(jīng)找不到進(jìn)程,且我只記住了port,忘記了這個(gè)后臺(tái)進(jìn)程的PID,所以在網(wǎng)上google 了老半天解決方式,其中大多數(shù)命令是 Linux 系統(tǒng)或 Mac 系統(tǒng)才有,而Windows 系統(tǒng)上的bash shell 沒(méi)有,比如下面兩個(gè)命令:
$ pgrep wget #wget 指的應(yīng)用程序名稱
1234
$ lsof -wni tcp:3000
$ fuser -k 3000/tcp
在試了眾多命令之后,突然發(fā)現(xiàn)有一個(gè)命令會(huì)在bash shell 中產(chǎn)生亂碼,而且其中某些命令參數(shù)是bash shell 沒(méi)有的。
輸出如下圖:
亂碼.PNG
亂碼可能由于之前bash shell設(shè)置了編碼的緣故,所以我打開(kāi)了Windows 的命令行工具 cmd在中輸入和上面同樣的命令,得到一個(gè)關(guān)于netstat 命令參數(shù)的中文說(shuō)明。閱讀過(guò)后我將命令寫(xiě)成下面的方式:(這個(gè)命令在bash shell中可以正常顯示)
netstat -naop TCP
輸出如下圖:
Windows 進(jìn)程信息.PNG
這樣就可以找到port 為3000 的PID為7392。但是得到的這個(gè)PID 是WINPID,我們還要再將這個(gè)PID 在bash shell通過(guò)如下命令進(jìn)行一個(gè)查找。得到如下結(jié)果
ps aux | grep 7392
結(jié)果如圖:
bash 獲取進(jìn)程.PNG
bash 獲取詳細(xì)進(jìn)程信息.PNG
這樣就找到了真正的PID為7444 了,再 $ kill 7444 就大功告成。