我的项目需要通过 Web GUI 远程执行交互式 shell 脚本。这意味着打印到脚本标准输出的内容必须在 GUI 上可用,并且必须从 GUI 获取用户输入并将其写入脚本的标准输入。
我的问题是 (a) 这是一个好主意吗(暂时搁置它是一个要求这一事实)? (b) 以前有人解决过这种问题吗?如果是,“最佳”方法是什么?
编辑 #1:要执行的脚本与 Web 服务器不在同一主机上。
编辑#2:
感谢您的回复!我担心浏览器端解决方案不符合我的目的,因为用户可以启动一个或多个脚本,可以关闭浏览器,在一段时间后回来检查脚本的输出并提供输入。
我提出的设计涉及将脚本的输出存储到不同的文件中,当用户启动浏览器时,它开始从文件中读取并不断轮询(通过 Ajax)直到脚本完成执行.
最佳答案
似乎您需要某种后台进程才能使其工作。您无法通过单个脚本来完成此操作,因为当这样的脚本运行时,浏览器认为它正在加载页面。如果这花费的时间比预期的要长,它就会中止并指出这一点。 “服务器响应时间太长”
因此,实际上您需要生成/ fork 一个单独的进程,并从客户端向服务器定期发出请求,这将导致服务器端脚本连接到该进程并与其交换消息。
参见phpterm例如。
关于user-interface - 从 Web GUI 远程执行交互式 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605373/