加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如何检测前台进程正在等待UNIX中的输入?

发布时间:2020-12-15 20:59:40 所属栏目:安全 来源:网络整理
导读:我必须创建一个脚本(ksh或perl)来启动一定数量的并行作业(另一个脚本),每个脚本在一个单独的会话中作为前台进程运行.另外,我开始监视作业,必须确定是否有任何脚本需要来自运算符的输入,并在必要时切换到相应的会话. 我的问题是我没有找到一个很好的方法来确
我必须创建一个脚本(ksh或perl)来启动一定数量的并行作业(另一个脚本),每个脚本在一个单独的会话中作为前台进程运行.另外,我开始监视作业,必须确定是否有任何脚本需要来自运算符的输入,并在必要时切换到相应的会话.
我的问题是我没有找到一个很好的方法来确定进程是否期望输入.对于后台进程,它非常简单:进程状态“停止”,可以使用’ps’命令轻松检查.在前台处理的情况下,这不起作用.
到目前为止,我尝试使用dbx或truss附加到进程,看看它是否挂在’read’上,但这种方法看起来太重了.
你能建议更好的解决方案吗? Perl,shell,C,Java等……只要它是标准的并且不需要额外的第三方或特定于操作系统的东西来安装就可以了.

谢谢.

解决方法

你问的是不可能的,至少不可靠.该过程可能使用 select或其他轮询方法而不是阻止读取调用.你无法知道它是在等待运算符输入还是忙于做其他事情,并且通常它们可能都是(在响应运算符输入的同时在后台做事).

程序发出等待运算符输入信号的正常方法是打印提示.因此,如果会话自上次输入输入后显示提示,则应认为该会话处于活动状态.

如果你的程序没有这种方式,你需要找到一些其他程序特定的方法来知道这些进程正在等待输入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读