我对Linux下的shell编程比较陌生,在我的Linux实例中,我按照以下方式将程序的标准输出(stdout)和标准错误(stderr)重定向到两个文件,并在后台运行它:
myprog > run.log 2>> err.log &
这个工作得很好,我得到了所需的行为。
现在有一个后台进程监视run.log和err.log文件,如果日志文件大小超过一定阈值,就将它们移动到其他文件名中。
例如:mv err.log err[date-time].log
我的期望是,在这个文件移动发生之后,myprog输出重定向将创建err.log文件,并将新的输出写入到这个新文件中。然而,在我的日志文件监视进程移动文件之后,err.log或run.log再也没有被创建,尽管myprog继续正常运行。
这是Linux中的正常行为吗?如果是,我应该怎么做才能使预期的行为正常工作?