Зробити straceз tail -f, це все пояснює. Цікава частина:
13791 fstat(3, {st_mode=S_IFREG|0644, st_size=139, ...}) = 0
13791 fstatfs(3, {...}) = 0
13791 inotify_init() = 4
13791 inotify_add_watch(4, "/path/to/file", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1
13791 fstat(3, {st_mode=S_IFREG|0644, st_size=139, ...}) = 0
13791 read(4, 0xd981c0, 26) = -1 EINTR (Interrupted system call)
Що це робить? Він встановлює inotifyобробник файлу, а потім чекає, поки з цим файлом щось не відбудеться. Якщо ядро скаже tailчерез цей обробник inotify, що файл змінився (як правило, додався), то tail1) шукає 2) читає зміни 3) записує їх на екран.
/proc/3844/fd/1у вашій системі є символічне посилання на /dev/pts/14, що є пристроєм символів. Немає такого, як деякі, як "карта пам'яті", до якої можна було б отримати доступ. Таким чином, немає нічого, чиї зміни можна було б підписати до інотифікованого, оскільки немає диска чи області пам'яті, до якої можна було б отримати доступ.
Цей символьний пристрій - це віртуальний термінал, який практично працює так, ніби це мережевий сокет. Програми, що працюють на цьому віртуальному терміналі, підключаються до цього пристрою (так само, як ніби ви telnet-тед в порт tcp) і записуєте те, що хочуть записати. Є і складніші речі, наприклад, блокування екрана, послідовності управління терміналом і таке, як правило, обробляються ioctl()дзвінками.
Я думаю, ви хочете якось дивитись віртуальний термінал. Це можна зробити на Linux, але це не так просто, йому потрібен певний функціонал мережевого проксі, і трохи хитро використання цих ioctl()дзвінків. Але є інструменти, які можуть це зробити.
В даний час я не можу пригадати, який пакет debian має інструмент для досягнення цієї мети, але з невеликим поглинанням ви могли це знайти, мабуть, легко.
Розширення: як згадується тут @Jajesh (дайте йому +1, якщо ви дали мені), інструмент названий watch.
Розширення №2: Згаданий @kelnos, досить cat /dev/pts/14було також простого . Я спробував це, і так, це спрацювало, але не правильно. Я з цим не експериментував багато, але мені здається, що вихід, що надходить у цей віртуальний термінал, перейшов або до catкоманди, або до його вихідного місця, і ніколи до обох. Але це не точно.