繁体   English   中英

期望脚本在shell中运行,但通过cgi失败

[英]expect script runs in shell but fails via cgi

我正在运行一个期望脚本,当在命令行上调用它时可以很好地工作,但是如果我通过cgi运行完全相同的命令,则在输入密码后失败并给出以下错误

打开终端时出错:未知。 与10.xxx的连接已关闭。 发送:执行“发送-“ \\ r”“(文件” ./precheck.exp“第24行)时,spawn id exp8没有打开

该网络服务器是猫鼬,它正在我当前的用户下运行,您知道这可能是什么错误吗?

CGI脚本由没有附加TTY的守护进程(Web服务器)运行。 但是,密码查询通常在附加的TTY上完成。 如果一个进程实际上测试了TTY的存在,则将发现在用户调用的shell脚本中运行与作为CGI运行之间存在差异。

现在,您可以怎么解决您的问题?

您可以创建PTY并将其附加到相关进程,以便即使它作为CGI脚本运行也可以找到TTY。 或者,您可以尝试说服该程序从其他地方获取密码。 如果可能的话,我建议尝试这种方式。 仅仅为此目的而穿上假TTY可能并不容易,我认为这是一个hack。

告诉程序如果没有TTY没关系,那么您就可以吃掉该密码了,这是解决问题的一种不错的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM