在使用linux時,有時會出現想使用的端口被佔用的情況,我們最簡單的處理方式是查找到對應的進程id,然後殺掉
例如使用netstat 命令查看端口的使用情況,例如查看8080端口的佔用情況
樣式: netstat -tlnp | grep 8080
從結果看佔用的程序id是30061,如果我們想要解除端口占用,只需執行
kill 30061 或者 kill -9 30061
但是單純殺掉進程我們會擔心影響到其他服務,因此我們需要查看是什麼服務佔用的,或者進程是從哪裏被啓動的
一般我們執行
ps -aux | grep pid
就可以查看當前線程的啓動情況
有時進程啓動方式比較特別,這樣無法直接查到啓動位置,可以執行如下的命令查看啓動位置
ls -l /proc/pid | grep cwd
我們知道/proc/pid 是linux提供的通過文件系統訪問某一進程的訪問接口 ,是存在於內存中的
通過ls -l /proc/pid 可以查看記錄當前進程相關信息的內容
如果要篩選啓動目錄可以執行如下命令
ls -l /proc/pid | grep cwd
例如
也可以執行下面的命令查找啓動目錄,但是查找比較慢
lsof -p pid | grep cwd
例如
找到對應的啓動目錄,就可以進入查看是什麼服務,以確定是否能夠解除端口占用,kill使用需謹慎