首先在 shell 中询问

问题描述 投票:0回答:1

我在嵌入式设备上工作时遇到了一个名为

askfirst
的开源软件的错误。

我知道askfirst 用于根据标准输入上的用户输入运行命令。

但是当我在askfirst进程(用于在启动后提供到设备的串行连接)期间按ctrl + \时,它会触发生成核心转储文件的进程的SIGQUIT。

但是在askfirst处理程序文件中没有与上述快捷方式相关的内容。

我需要知道为什么会生成这个核心转储以及是否有办法阻止它。

linux shell embedded embedded-linux
1个回答
1
投票

这不是

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
文件中。

© www.soinside.com 2019 - 2024. All rights reserved.