mac学习vue被这件事折磨的无路可退(绝了,我通过脚本解决一切)

2021-04-20 10:44:04 浏览数 (1)

前言

最近在摸索vue。令我头疼的一件事是,如果以外关闭了启动的服务,就会重新开一个端口,这样很不友好,每次还得重新输入到浏览器上一个新的端口。即使是复制到浏览器的地址栏上,也是很繁琐的。

一遍,一遍,又一遍。

啊啊啊

如下图,第一次启动是3000

无故关闭了,就会重新启动一个新的端口

真的很烦。

今天,我终于受不了啦。

笨人的解决方案

1、先查出来占用端口的PID

代码语言:javascript复制
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结束进程

代码语言:javascript复制
kill -9 17178

重复几十遍你试试。

聪明人的解决方法

1、创建一个脚本,内容如下:

代码语言:javascript复制
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、想杀死进程时,直接运行

代码语言:javascript复制
sh ks.sh

进阶(青铜)

代码语言:javascript复制
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

进阶(王者)

代码语言:javascript复制
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、命令名、文件描述符、文件名,并以空终止)

0 人点赞