我能';t通过SSH结束自动启动的X11应用程序
我希望在用户退出使用SSH连接启动的程序后立即关闭SSH连接。我现在的剧本是我能';t通过SSH结束自动启动的X11应用程序,ssh,x11,expect,Ssh,X11,Expect,我希望在用户退出使用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应用程序
#!/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
没有提示或其他任何提示,它只是说注销
。我必须用^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
这将在Iq
ui进入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启动时运行命令
请帮忙
-Gabriel我知道,如果仍有X会话通过ssh的隧道运行,ssh将不会完全关闭连接。因此,当您认为wpa\U gui会停止时,它可能不会真正停止。这听起来像是一个WiFi工具,它可能会在系统托盘中添加一个图标…它确实会进入系统托盘。但我右键点击并退出。然后终端执行退出,但这不会关闭终端窗口。好吧,我在这里不知所措。但是,当会话最后看到“注销”时,您不能让
expect
强制关闭会话吗?就像你按^C?我想这是可能的。我不是什么了不起的专家。但我会用谷歌搜索它。