相关疑难解决方法(0)

如何杀死后台/分离的ssh会话?

我正在使用程序协同与ssh隧道

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

ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHost
synergyc localhost
Run Code Online (Sandbox Code Playgroud)

因为我很懒,我制作了一个Bash-Script,只需点击一下图标即可运行:

#!/bin/bash
ssh -f -N -L localhost:12345:otherHost:12345 otherUser@OtherHost
synergyc localhost
Run Code Online (Sandbox Code Playgroud)

上述与bash脚本工作为好,但现在我也想杀死协同效应,并通过鼠标点击一个SSH通道,所以我必须协同和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
Run Code Online (Sandbox Code Playgroud)

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

如何获得ssh和协同作用的PID?
(我尽量避免ps aux | grep ... …

ssh bash pid background-process

59
推荐指数
6
解决办法
9万
查看次数

标签 统计

background-process ×1

bash ×1

pid ×1

ssh ×1