【发布时间】:2023-03-25 21:20:01
【问题描述】:
我必须创建一个脚本(ksh 或 perl)来启动一定数量的并行作业(另一个脚本),它们每个都在单独的会话中作为前台进程运行。另外,我开始监视工作,该工作必须确定这些脚本中的任何一个是否需要操作员的输入,并在必要时切换到相应的会话。 我的问题是我还没有找到一个好的方法来确定该过程是否需要输入。对于后台进程,这很简单:进程状态是“停止”的,这可以通过“ps”命令轻松检查。在前台进程的情况下,这不起作用。 到目前为止,我尝试使用 dbx 或 truss 附加到该进程以查看它是否挂在“读取”上,但这种方法似乎过于重量级。 你能提出一些更好的解决方案吗? Perl、shell、C、Java 等……只要它是标准的并且不需要安装额外的第 3 方或特定于操作系统的东西就可以了。
谢谢。
【问题讨论】:
-
一种粗略的方法是在 strace 下运行它并监控从标准输入(fd==0)读取()。