281得票4回答
在底层,分段错误是如何工作的呢?

除了“CPU的MMU发送信号”和“内核将其指向有问题的程序并终止它”的信息,似乎找不到其他相关信息。 我猜想它可能会将信号发送给shell,并由shell负责终止有问题的进程并打印“Segmentation fault”。为了验证这个猜想,我编写了一个非常简单的shell,称之为crsh(糟...

152得票5回答
在Bash中将SIGTERM转发给子进程。

我有一个类似于这样的Bash脚本: #!/bin/bash echo "Doing some initial work...."; /bin/start/main/server --nodaemon 现在,如果运行脚本的bash shell接收到SIGTERM信号,它也应该向正在运行的服...

105得票3回答
如何标志stdin输入的结束

在Bash中,我了解到可以通过here document来改变输入结束的信号。但是默认情况下,如何表示stdin输入的结束呢? 我碰巧发现,使用cat和chardet时,可以通过按下Ctrl+D来表示stdin输入已经结束。但我记得Ctrl+D和Ctrl+C似乎类似于终止正在运行的命令。所以...

103得票2回答
终端生成的信号列表(例如Ctrl-C -> SIGINT)

在Linux中,我可以在哪里找到一个完整的键盘组合列表,这些组合可以发送信号? 例如: Ctrl+C - SIGINT Ctrl+\ - SIGQUIT

97得票9回答
如何检查一个进程正在监听哪些信号?

我如何验证一个正在运行的进程是否会捕获信号、忽略信号或者阻塞信号?理想情况下,我希望能够看到一个信号列表,或者至少不必实际发送信号来检查。

91得票7回答
“trap ... INT TERM EXIT” 真的必要吗?

对于清理任务,trap ... INT TERM EXIT 的用法有很多例子。但是真的有必要列出所有三个信号规范吗? 手册上说: 如果 SIGNAL_SPEC 是 EXIT (0),则在退出 shell 时执行 ARG。 我相信这适用于脚本正常结束或因接收到 SIGINT 或 SIG...

87得票1回答
终止信号列表

我熟悉几种过程信号及其功能,但我想要了解所有的信号。 对于每个信号,有三件事情我想要弄清楚。 信号的功能是什么 这种信号通常在什么时候发送 与这些信号相关的命令行快捷方式或命令 以下是信号列表以及我目前了解到的内容。 0 - ? 1 - SIGHUP - ?, controlli...

82得票4回答
进程终止时的默认退出代码是什么?

当一个进程被可处理的信号(如SIGINT或SIGTERM)杀死,但它没有处理该信号时,进程的退出代码是什么? 对于不可处理的信号(如SIGKILL),又会怎样呢? 据我所知,使用SIGINT杀死一个进程可能会导致退出代码为130,但这是否会因内核或shell实现而有所不同? $ cat ...

81得票5回答
为什么当SIGINT发送给父进程时,它不会传递给子进程?

给定一个shell进程(例如sh)和它的子进程(例如cat),我如何使用shell进程的ID模拟Ctrl+C的行为? 这是我尝试过的方法: 运行`sh`,然后执行`cat`命令: [user@host ~]$ sh sh-4.3$ cat test test 从另一个终端发送 S...

77得票11回答
终止一个无限循环

我有一个命令,我希望每次它终止后都能自动重新运行,所以我运行了类似这样的命令: while [ 1 ]; do COMMAND; done; 但是如果我不能用Ctrl-c来停止循环,因为那只会终止COMMAND而不是整个循环。 我该如何实现类似的功能,但又不必关闭终端才能停止循环呢?