在做的时候
tail -f /var/log/apache2/access.log它显示日志,然后
Killed我必须重新执行tail -f才能看到新的日志。
如何让tail -f在不自毁的情况下持续显示日志?
发布于 2014-04-10 20:48:30
我要做的第一件事是尝试--跟随而不是-f。您的问题可能是因为您的日志文件正被轮换出。从手册页:
使用--
(-f),tail默认跟在文件描述符之后,这意味着即使重命名了结尾的文件,tail也会继续跟踪它的结尾。当您确实想要跟踪文件的实际名称,而不是文件描述符(例如,日志循环)时,这种默认行为是不可取的。在这种情况下使用--follow=name。这会导致tail以适合重命名、删除和创建的方式跟踪指定的文件。*
发布于 2014-04-10 20:51:22
tail -f不应该被杀。
顺便说一句,尾巴不会自杀,它是被什么东西杀死的。例如,系统内存不足或资源限制过于严格。
请找出是什么扼杀了你的尾巴,例如使用gdb或strace。还要检查您的环境,至少要检查ulimit -a和dmesg是否有任何线索。
发布于 2014-04-10 22:23:53
如果您的描述是正确的,并且tail实际显示
Killed则可能不会因为日志轮换而发生这种情况。日志轮换会导致tail停止显示新行,但即使文件被删除,tail也不会被终止。
相反,系统上的某个其他进程,或者可能是内核,正在向它发送信号9 (SIGKILL)。可能的原因包括:
SIGKILL在另一个终端上的用户发出命令,如kill -9 1234或pkill -9 tail
ulimit -a在我看来,这些解释中的第一种或最后一种似乎最有可能。
https://stackoverflow.com/questions/22988430
复制相似问题