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?
我的第一个想法是,你需要在后台启动进程,以获得他们的PID与$!。
模式喜欢 some_program & some_pid=$! wait $some_pid 可能会做你需要的…除了那样ssh将不会在前台要求密码短语。 那么,你可能需要不同的东西。 ssh -f可能产生一个新的进程,你的shell永远不能从调用它。理想情况下,ssh本身将提供一种方式将其PID写入某个文件。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |