【问题标题】:expect language, how to keep the spawned program running while the expect script is closed期望语言,如何在期望脚本关闭时保持生成的程序运行
【发布时间】:2012-05-04 13:03:47
【问题描述】:
spawn ssh -fnqX username@192.168.1.100 google-chrome 
expect -re "password"  
send "passwd\r"
interact (?)

如何在整个脚本关闭时继续运行 chrome。所以我可以在同一个外壳中做另一件事吗? 非常感谢。

新增。
spawn ssh -fnqX $log_name@192.168.1.100 firefox  
expect -re "password"  
send "$passwd_v100\r"
expect -re "failed to create drawable| ~"
send eof\r

其实上面的代码是我后来写的,运行正常。好吧,我不知道代码send eof\r 是如何使脚本运行良好的。我觉得很奇怪。顺便说一句,firefox 调用了字符串“failed to create drawable”。

【问题讨论】:

  • 你可以在后台调用expect程序。

标签: ssh tcl expect


【解决方案1】:

使用nohup 可能吗?

【讨论】:

  • 我的意思是使用 expect 来执行这个动作。我尝试了 nohup 和 & ,但结果是随机的(chrome随机运行,换句话说,有时chrome运行,而另一次不运行)。
  • @vz33,这可能涉及到正确运行与 X 服务器(在您的情况下为 Chrome)通信的应用程序,该应用程序必须知道如何连接到那个 X 服务器。通常它要么有一个命令行选项,要么查看DISPLAY env。变量,或两者兼而有之。所以我会开始在那里调查。
  • spawn ssh -fnqX $log_name@192.168.1.100 firefox \n expect -re "password" \n send "$passwd_v100\r" expect -re "failed to create drawable| ~" send eof\ r 实际上,我后来写了上面的代码,它运行正常。好吧,我不知道代码send eof\r 是如何使脚本运行良好的。我觉得很奇怪。
  • @kostic,看看这个问题。无法在评论区写代码。
  • @vz33,我不知道:send eof\r 应该会向远程 shell 发送一个 EOF 信号,据说会产生与在交互式 SSH 会话中点击 Ctrl-d 时通常所做的相同的结果,并且那里相当于在shell中执行exit,也就是退出shell。在这件事上我只能说这些。
猜你喜欢
  • 2020-01-13
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多