0

我想在用户退出以 SSH 连接启动的程序后立即关闭 SSH 连接。我当前的脚本是

#!/usr/bin/expect

set login "pi"
set addr "192.168.0.102"
set pw "password"

spawn ssh -X $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "#"
send "wpa_gui; exit\n"
interact

当我退出 wpa_gui 应用程序时,我得到

logout

之后没有提示或任何内容,它只是说logout。我必须关闭窗口^C

如果我尝试在没有 X11 的情况下做类似的事情,它会起作用

#!/usr/bin/expect

set login "pi"
set addr "192.168.0.102"
set pw "password"

spawn ssh $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "#"
send "man ls; exit\n"
interact

一旦我q进入man页面,这将关闭 shell 窗口。

如果我手动启动 wpa gui:

#!/usr/bin/expect

set login "pi"
set addr "192.168.0.102"
set pw "password"

spawn ssh -X $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "#"
interact

然后在命令行中:

$ wpa_gui
$ exit
logout

同样的事情也会发生。所以问题肯定出在 X11 区域,而不是在 SSH 启动时运行命令。

请帮忙

-加布里埃尔

4

1 回答 1

0

我知道如果仍然有一个 X 会话通过它的隧道运行,ssh 不会完全关闭连接。因此,wpa_gui当您认为它确实停止时,它可能并没有真正停止。听起来像是一个 WiFi 工具,它可能会在您的系统托盘中添加一个图标...

于 2013-07-16T23:26:33.817 回答