Linux解除端口占用
需要解除端口占用時,可以通過端口或者進程名查找進程,再通過該進程的pid來殺掉該進程;也可以通過進程名直接殺死進程。
方法1
- 根據端口查找進程
sudo lsof -i:<端口號>
得到結果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 3265 root 3u IPv4 98407 0t0 TCP *:http (LISTEN)
查看到佔用端口的進程ID爲3265
- 根據程序名查找進程,注意需輸入完整的程序名,例如:
pidof python3
- 殺掉進程
sudo kill <PID>
方法2
當我們知道需要kill的進程名時就可以根據進程名來kill:
sudo pkill <進程名>
方法3
我實測出現過進程kill不掉的情況,即使用了sudo kill之後執行pidof仍然能看到進程號,此時可以用kill -9。
關於kill與kill -9的區別網上解釋如下:
其實kill就是給某個進程id發送了一個信號。默認發送的信號是SIGTERM,而kill -9發送的信號是SIGKILL,即exit。exit信號不會被系統阻塞,所以kill -9能順利殺掉進程。當然你也可以使用kill發送其他信號給進程。