对文件进行重命名操作不会切断程序与重定向文件之间的联系

程序本身通过nohup模式启动的,重定向打印的内容到文件

经过重命名的操作,并重新创建空文件的操作:

mv -f xwzj_server.log xwzj_server_20210222.log && touch $file;

原程序运行的日志会继续输出到xwzj_server_20210222.log中去。

这就意味着对文件进行重命名操作并不能切断程序与重定向文件之间的联系。

原文链接:https://blog.csdn.net/sinat_34624126/article/details/113974307


要解决这个问题 需要配合管道和 cronolog 程序使用,下面是一个例子

nohup java -jar -Xms128m -Xmx256m script-log.jar 2>&1 | /usr/local/sbin/cronolog /data/jar-server/user-behavior/logs/script-log.%Y-%m-%d.out