linux shell 子进程结束,linux – 如何在bash脚本退出时终止ssh tunnel子进程

我有一个bash脚本创建ssh隧道来安全地连接远程

mysql服务器,如下所示.

ssh -f -N -L $LOCAL_PORT:localhost:3306 $REMOTE_USER@$REMOTE_IP

mysql -P $LOCAL_PORT -h 127.0.0.1 -u lapl_stg -p${REMOTE_DB_PASS} < ./t1.sql > ./out.txt

在bash脚本中打开ssh隧道后,在退出bash脚本后,我注意到ssh隧道子进程仍处于活动状态.

脚本退出后,如果您执行netstat,则会显示如下.

netstat -a -n -p -l

(Not all processes could be identified, non-owned process info

will not be shown, you would have to be root to see it all.)

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:3308 0.0.0.0:* LISTEN 6402/ssh

tcp 0 0 10.44.44.11:46836 10.44.44.21:22 ESTABLISHED 6402/ssh

tcp6 0 0 ::1:3308 :::* LISTEN 6402/ssh

如何优雅地终止ssh子进程(6402)以清理脚本?我想过使用’killall ssh’,但它可能会意外杀死其他人创建的其他ssh进程.

谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值