00:00 / 00:28
连播
清屏
智能
倍速
点赞107
00:00 / 00:34
连播
清屏
智能
倍速
点赞181
00:00 / 02:43
连播
清屏
智能
倍速
点赞760
01熵5月前
别再杀进程了!让 Ctrl+C 变成“喵”(用信号实现) https://www.youtube.com/watch?v=m6WXrC9Mxzo 视频核心总结 Ctrl+C 的默认行为 在终端运行程序时,按下 Ctrl+C 会向该进程发送一个 SIGINT(中断信号)。 默认情况下,这会立即终止进程,相当于“杀掉”程序。 信号的概念 信号是 Unix/Linux 系统中一种低层进程间通信机制,不依赖共享内存或显式消息传递。 信号是一个简单的事件通知,例如 SIGINT(中断)、SIGTERM(终止)、SIGKILL(强杀)、SIGUSR1/2(用户自定义)等。 信号只告诉进程“发生了某件事”,不传递复杂数据。 类比说明 视频用交通灯和汽车喇叭作比喻:你不会发邮件或下车跟前车司机解释,只是按喇叭,告诉对方“该走了”。 信号就像喇叭:短小、直接,只是通知事件发生。 捕获与处理信号 可以用编程方式捕获信号(signal handling),在收到信号时执行自定义动作,而不是让系统执行默认行为。 例如,拦截 SIGINT 信号,让 Ctrl+C 不结束程序,而是输出“喵~”、保存数据、打印状态等。 实现方法(示例语言是 Python) 使用 signal 模块注册一个处理函数 signal.signal(signal.SIGINT, handler)。 当用户按下 Ctrl+C,handler 会被调用,执行自定义逻辑。 这样可以让程序优雅退出、记录日志,甚至仅仅做个有趣的动作。 应用场景 优雅关闭长时间运行的程序(如服务器、数据采集、实验脚本)。 提供调试信息而不终止进程。 制作有趣的终端互动效果。 相关标签 #Linux编程 #进程通信 #CtrlC #SIGINT #系统编程 #Python #Shell终端 #进程控制
00:00 / 17:14
连播
清屏
智能
倍速
点赞181
00:00 / 08:56
连播
清屏
智能
倍速
点赞4128