我有一个工作的shell脚本,它调用另一个shell脚本来对服务器上运行的某些进程执行某些操作。这个内部shell脚本有时会提示输入用户标识和密码。如果发生这种情况,我想出来这个内部脚本,并希望为进程执行kill -9。任何人都可以建议如何实现这一目标?
还有一点,无论我的shell脚本是什么,我都在日志文件中记录,所以我假设当脚本提示输入用户名和密码时,这些信息也会记录在日志中。所以他们应该是一种方式在日志文件中检查这一点。
我正在使用Linux操作系统。请检查并提出建议。
答案 0 :(得分:0)
你可以杀死你的孩子脚本 超时后:
( cmdpid=$BASHPID; (sleep 10; kill -9 $cmdpid) & exec my-child-script )
在这种情况下,你会在给定的一段时间(10秒)后杀死my-child-script
。
您不能(轻松)检测脚本是否在等待输入(在标准输入上),唯一的工作方法是使用strace / ptrace,但它太复杂了 而且我认为这不值得。基于超时的方法似乎更为自然。
你可以在这里找到 在这个问题中这种方法的一些其他例子:
关于日志文件:
您可以使用grep/sed
从日志文件中提取数据。为了使答案更具体,我们需要一些额外的数据。