如果STDOUT更改为我要查找的内容,请杀死命令行进程并重新启动?

| 我有一个问题-我正在从命令行运行一个有问题的进程,每隔几个小时便出现一次错误。当我调查问题时,我想从监视STOUT某些字符串/正则表达式的东西中产生该进程,并在输出表明它已损坏的东西时终止并重新启动该过程。 我知道我可以通过滚动自己的Python / Ruby脚本来做到这一点,但是我想知道是否有任何漂亮的工具可以使它更简洁?这是在Windows上,但是我有cygwin,以防答案涉及unix命令行过程。     
已邀请:
        程序| grep CRASH_STRING | xargs -l 1 sh -c \'killall program && program \' 好吧,那只会做一次。我不确定如何使它循环工作。我考虑了一下,可以通过将stdout重定向到命名管道来完成。但是,与使用脚本语言编写看门狗相比,shell脚本最终可能会更加笨拙。 但是用管道的想法是这样的:
mkfifo /tmp/fifo
program > /tmp/fifo&
while :
do
grep \"CRASH_STRING\" /tmp/fifo | xargs -l 1 sh -c \'killall program && program > /tmp/fifo&\'
done
    

要回复问题请先登录注册