加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何杀死背景/分离的ssh会话?

发布时间:2020-12-15 16:40:11 所属栏目:安全 来源:网络整理
导读:我使用程序协同与ssh隧道 它的工作,我只是打开一个控制台类型这两个命令: ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHostsynergyc localhost 因为我做了一个Bash脚本,它运行在一个图标上的一个mouseclick: #!/bin/bashssh -f -N -L
我使用程序协同与ssh隧道

它的工作,我只是打开一个控制台类型这两个命令:

ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHost
synergyc localhost

因为我做了一个Bash脚本,它运行在一个图标上的一个mouseclick:

#!/bin/bash
ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHost
synergyc localhost

上面的Bash脚本也工作,但现在我也想杀死协同作用和ssh隧道通过一个mouseclick,所以我必须保存协同和ssh的PID到文件,以后杀死他们:

#!/bin/bash

mkdir -p /tmp/synergyPIDs || exit 1
rm -f /tmp/synergyPIDs/ssh || exit 1
rm -f /tmp/synergyPIDs/synergy || exit 1

[ ! -e /tmp/synergyPIDs/ssh ] || exit 1
[ ! -e /tmp/synergyPIDs/synergy ] || exit 1

ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHost
echo $! > /tmp/synergyPIDs/ssh
synergyc localhost
echo $! > /tmp/synergyPIDs/synergy

但是这个脚本的文件是空的。

如何获得ssh和协同作用的PID?
(我试图避免ps aux | grep … | awk … | sed …组合,有一个更简单的方法。)

我的第一个想法是,你需要在后台启动进程,以获得他们的PID与$!。

模式喜欢

some_program &
some_pid=$!
wait $some_pid

可能会做你需要的…除了那样ssh将不会在前台要求密码短语。

那么,你可能需要不同的东西。 ssh -f可能产生一个新的进程,你的shell永远不能从调用它。理想情况下,ssh本身将提供一种方式将其PID写入某个文件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读