我使用程序协同与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 …组合,有一个更简单的方法。)