Тобі потрібно tail --follow=name /var/log/syslog
Причина полягає в тому, що за замовчуванням - нібито з причини продуктивності - tail
відкривається вказаний файл, а потім дивиться дескриптор файлу, який він отримує з цього open(2)виклику змін. Це працює добре, поки файл змінюється - додається до або навіть переписується (спочатку обрізуючи його), але він припиняє роботу, якщо файл замінити - тобто видаляється та створюється з тим самим іменем, і це logrotateзазвичай робиться.
Режим «ім'я» --followбрендів tailвикористовувати більш дорогий stat(2)системний виклик , який на самому справі «вирішує» ім'я файлу кожного разу , коли з допомогою файлової системи шару, і якщо tailпомічає зміни в файлі , його так званий «індексний дескриптор» , tailповторно відкриває файл.
Вихід від man tail:
-f, --follow[={name|descriptor}]
виводити додані дані по мірі зростання файлу; аргумент відсутньої опції означає «дескриптор»
Ви також можете переглянути параметр -Fкомандного рядка, який визначається як
-F такий же, як --follow=name --retry