Чи видає екран GNU сигнал 28?


2

Трохи постріл ...

Я виконую тривалий процес, який займає кілька годин. Процес - це реіндексація нечіткого файлу бази даних CDDB. Процес продовжує виходити через деякий час, хоча тривалість часу є змінною:

# /usr/local/bin/cddbd -fdv
Generating the fuzzy matching hash file.
Scanning /home/freedb/cddb/soundtrack.
Scanning /home/freedb/cddb/lost+found.
Scanning /home/freedb/cddb/jazz.
Scanning /home/freedb/cddb/data.
Scanning /home/freedb/cddb/rock.
Scanning /home/freedb/cddb/reggae.
Scanning /home/freedb/cddb/newage.
Scanning /home/freedb/cddb/folk.
Scanning /home/freedb/cddb/misc.
Received signal 28.
Quitting, status 1.

Вихід з процесу CDDB. Я ніколи не бачив сигнал 28 раніше, і після деяких досліджень є дві можливості: "зміна розміру вікна" (хоча це, здається, лише BSD або Sun Unix) або "Віртуальний будильник" (лише BSD). Я запускаю це в Ubuntu ...

Тож я задумався, ігноруючи той факт, що я не повинен отримувати це в Linux, чи може екран видавати сигнали "зміни розміру вікна"?

Як я вже казав, трохи постріл!

Відповіді:


3

Швидке зчитування вихідного коду screenпоказує, що він надсилатиметься SIGWINCHпід час приєднання до сеансу, щоб сказати програмам, що вони повинні повторно перевірити ширину термінала × висоту. Це в attacher.c.

SIGWINCH завжди існував на Linux - сигнал (7) просто говорить "4.3BSD, Sun", оскільки саме тоді сигнал був введений , як частина псевдотехнічної підтримки.


Дякую. Цікаво. Хоча я думаю, що це відбувалося довгий час після відшарування, посеред ночі. Ніхто інший (що я знаю!) Не має доступу до цієї машини. Трохи прикро, що процес просто припиняється, коли це станеться ...
Ден Гравелл

Програми дійсно також не повинні виходити з SIGWINCH; правильна поведінка - або перемалювати екран (якщо ви проклинаєте), або проігнорувати його (якщо ні). Про це, можливо, варто повідомити технічне обслуговування cddbd.
Том Хант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.