如果您正在终端中安装软件包并使用 Control+C 来停止它,它是否也会撤消所有更改并删除它下载的文件?
答案1
在终端中点击(或输出中的Ctrl-C当前字符),如果出现在 的输出中,则会导致内核向终端中的每个进程发送信号intr
stty -a
isig
stty -a
SIGINT
终端的前台进程组,如果您在该终端中运行交互式 shell,则这是在前台运行的 shell 作业。
默认情况下,该信号会导致进程立即终止(不刷新缓冲区或任何清理操作)。然而,应用程序可以自由地拦截或忽略该信号,并在退出之前执行它们认为必要的任何操作。
包管理器通常会这样做,因为它会尝试避免使包系统处于不一致的状态。但是,所有包管理器的行为都会有所不同,因此您需要指定您正在使用的包管理器。