Czy ekran GNU wydaje sygnał 28?

2

Trochę dalekiego strzału ...

Realizuję długotrwały proces, który zajmuje kilka godzin. Proces polega na ponownym indeksowaniu zamazanego pliku dopasowania bazy danych CDDB. Po pewnym czasie proces kończy się, chociaż czas jest zmienny:

# /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.

Dane wyjściowe pochodzą z procesu CDDB. Nigdy wcześniej nie widziałem sygnału 28, a po niektórych badaniach istnieją dwie możliwości: „zmiana rozmiaru okna” (chociaż wydaje się, że to tylko BSD lub Sun Unix) lub „Wirtualny budzik” (tylko BSD). Używam tego w Ubuntu ...

Zastanawiałem się więc, ignorując fakt, że i tak nie powinienem otrzymywać ich na Linuksa, czy ekran mógłby wydawać sygnały „zmiany rozmiaru okna”?

Jak powiedziałem, trochę długiego strzału!

Dan Gravell
źródło

Odpowiedzi:

3

Szybki odczyt kodu źródłowego dla screenprogramów pokazuje, że wyśle ​​on SIGWINCHpo dołączeniu do sesji, aby poinformować programy, że powinny ponownie sprawdzić szerokość x wysokość terminala. To jest w attacher.c.

SIGWINCH ma zawsze istniał w systemie Linux - sygnał (7) po prostu mówi „4.3BSD Sun”, ponieważ to jest, gdy sygnał został wprowadzony w ramach wsparcia pseudo-tty.

Thomas Dickey
źródło
Dzięki. Ciekawy. Chociaż myślę, że działo się to długo po oderwaniu, w środku nocy. Nikt inny (o którym wiem!) Nie ma dostępu do tego komputera. To trochę denerwujące, że proces ten kończy się, kiedy to się dzieje ...
Dan Gravell
Programy naprawdę nie powinny wychodzić z SIGWINCH; poprawnym zachowaniem jest przerysowanie ekranu (jeśli jesteś przeklęty) lub zignorowanie go (jeśli nie). Może to być warte zgłoszenia do opiekuna cddbd.
Tom Hunt