前言
最近在摸索vue。令我头疼的一件事是,如果以外关闭了启动的服务,就会重新开一个端口,这样很不友好,每次还得重新输入到浏览器上一个新的端口。即使是复制到浏览器的地址栏上,也是很繁琐的。
一遍,一遍,又一遍。
啊啊啊
如下图,第一次启动是3000
无故关闭了,就会重新启动一个新的端口
真的很烦。
今天,我终于受不了啦。
笨人的解决方案
1、先查出来占用端口的PID
zhenghui@192 ~ % lsof -i:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 17178 zhenghui 24u IPv4 0xc012b2e327127691 0t0 TCP *:hbci (LISTEN)
zhenghui@192 ~ %
2、使用kill结束进程
kill -9 17178
重复几十遍你试试。
聪明人的解决方法
1、创建一个脚本,内容如下:
zhenghui@192 ~ % cat ks.sh
data=`lsof -i:3000|awk '{print $2}' | sort | uniq -d `
for d in $data
do
echo $d
kill -9 $d
done
zhenghui@192 ~ %
2、想杀死进程时,直接运行
sh ks.sh
进阶(青铜)
zhenghui@192 ~ % cat ks.sh.bak
data=`lsof -i:$1|awk '{print $2}'`
echo "共:$data"
#用于累加计数,用于跳过第一个标题
count=0
for d in $data
do
if [ "$count" -gt 0 ];then
echo 正在结束:$d
kill -9 $d
fi
#每次累加1
count=$((${count}+1))
done
进阶(王者)
zhenghui@192 ~ % cat ks.sh
data=`lsof -i:$1 -t`
echo "共:$data"
for d in $data
do
echo 正在结束:$d
kill -9 $d
done
zhenghui@192 ~ %
附
1、lsof命令常用参数
-a : 结果进行“与”运算(而不是“或”)
-l : 在输出显示用户ID而不是用户名
-h : 获得帮助
-t : 仅获取进程ID
-U : 获取UNIX套接口地址
-F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)
转载:https://blog.csdn.net/qq_17623363/article/details/115638968
查看评论