我在嵌入式设备上工作时遇到了一个名为
askfirst
的开源软件的错误。
我知道askfirst 用于根据标准输入上的用户输入运行命令。
但是当我在askfirst进程(用于在启动后提供到设备的串行连接)期间按ctrl + \时,它会触发生成核心转储文件的进程的SIGQUIT。
但是在askfirst处理程序文件中没有与上述快捷方式相关的内容。
我需要知道为什么会生成这个核心转储以及是否有办法阻止它。
这不是
askfirst
中的功能(或错误)。您可以通过按 SIGQUIT
将 Ctrl-\
发送到终端中运行的任何进程。
它是终端的一项功能。您可以使用
stty -a
查看哪些按键会生成哪些信号:
$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
...
此问题的答案中有一些有关确切机制的更详细信息:详细来说,当您在终端中按 Ctrl-C 时会发生什么?相同的机制适用于
Ctrl-\
。
如果你想禁用核心转储(在当前 shell 中),你可以使用:
$ ulimit -c 0
如果您希望每次登录时都发生这种情况,您可以将该命令添加到您的
~/.profile
文件中。