有点远...
我正在执行一个需要几个小时的长时间运行的过程。该过程是重新索引 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 上得到这些事实,屏幕是否会发出“窗口大小改变”信号?
正如我所说,这有点不太可能!
答案1
快速阅读源代码显示,当您连接到会话时,screen
它会发送,以告诉程序它们应该重新检查终端的宽度×高度。这是SIGWINCH
attacher.c
。
SIGWINCH 具有总是存在于 Linux 上 –信号(7)只是说“4.3BSD,Sun”,因为那时信号引入,作为伪tty支持的一部分。