Linux系统下:解决每次启动vue项目时,服务器端口号+1问题

1 启动项目遇见问题

       问题:设定vue项目访问的端口号为8010,但是每次通过脚本进行更新部署时,上一个任务进程总是不会自动结束,导致每次启动后端口号变为8081、8082、8083.....

       因此导致访问时无法有一个固定的端口,每次还需要手动杀死上一个任务进程,然后再次执行项目启动才会显示8010端口。

2 问题解决

       由于本人是通过Jenkins下加入脚本进行触发启动,因此本方法讲解如何在脚本中找到目的端口号下正在运行程序的PID值。

(1)查询端口号下正在运行的任务有哪些

lsof -i:8010

接下来会显示如下内容

COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
node    19729 root   19u  IPv4 300702264      0t0  TCP *:8010 (LISTEN)
node    19729 root   23u  IPv4 310186778      0t0  TCP localhost.localdomain:8010->192.168.3.76:51580 (ESTABLISHED)
node    19729 root   26u  IPv4 303297435      0t0  TCP localhost.localdomain:8010->192.168.14.97:55974 (ESTABLISHED)

        我们要执行的命令是删除PID值(位于第二列,并且每一列都是相同的),查询种种方法,没有可以直接输出PID值的方式,也没有可以杀死端口下所有进程的手段。

产生如下思路:

       如果有指令可以单独输出第二、三、四列的任意一个PID值进行kill即可解决问题。

        因此进行大量查阅,发现常见命令:

kill -9 PID

         -9为正常杀死任务进程(还有别的参数,可以自行查阅)。

          对指定行列进行打印的命令为:

awk 'NR==2{print $2}'

           上述例子为指定打印第2行,第2列 (NR==代表第几行,{print $}代表第几列)

           因此在脚本中我们将查询到的端口号下正在进行的任务查询:

输入:lsof -i:8010 
显示:
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
node    19729 root   19u  IPv4 300702264      0t0  TCP *:8010 (LISTEN)
node    19729 root   21u  IPv4 326806340      0t0  TCP localhost.localdomain:8010-
node    19729 root   23u  IPv4 310186778      0t0  TCP localhost.localdomain:8010-
输入:
lsof -i:8010 | awk 'NR==2{print $2}'
显示:
19729

           表明成功打印出来第二行第二列,如果想直接一句命令杀死此进程:

kill -9 `lsof -i:8010 | awk 'NR==2{print $2}'`

            下面为测试行列打印操作过程截图 

      测试完毕,整合命令成功输出PID值 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值