-
2026-01-27 18:18:09
- subprocess 如何在 timeout 时优雅杀死子进程树
- subprocess.run()的timeout参数只终止主进程,不清理子进程树;应使用start_new_session=True(Linux/macOS)或CREATE_NEW_PROCESS_GROUP(Windows)配合killpg/CTRL_BREAK_EVENT,或用psutil显式遍历终止整个进程树。
-
568
-
2026-01-27 18:18:18
- Linux 从“救火式运维”到“体系化运维”
- 体系化运维的核心是建立可验证的闭环机制。需配置systemd-journald持久化日志、rsyslog保留RFC5424结构、Prometheus合理设置scrape_timeout、Ansible校验系统版本并验证变更生效,缺一环即退化为救火式运维。
-
643
-
2026-01-27 18:23:02
- Python 使用生成器优化内存占用
- 生成器比列表节省内存达数量级,如range(10**6)仅占几十字节,而等价列表占用约8MB;必须用yield的场景包括处理大文件、递归结构、无限序列及管道式惰性求值链。
-
359
-
2026-01-27 18:23:06
- Linux 进程调度器的工作机制
- Linux调度器通过就绪队列和虚拟运行时间(vruntime)决定下一个上CPU的进程,CFS调度器依据vruntime大小动态选择优先级最高的普通进程,而实时进程(如SCHED_FIFO)独立于CFS且永远抢占;renice仅调整CFS中普通进程的nice值,chrt则切换至实时调度类,二者互不干扰;调度时机由事件驱动(如中断、系统调用返回、进程唤醒等),非固定周期;SCHED_IDLE仅在系统空闲时运行,SCHED_BATCH适用于CPU密集型批处理以减少上下文切换。
-
324
-
2026-01-27 18:24:11
-
2026-01-27 18:25:25
- 如何在运行时动态移除类的某个方法
- 直接delattr删除实例方法无效,因方法存于类而非实例;应操作类对象,如delattr(MyClass,‘method’);但需注意继承链、依赖风险,推荐用NotImplementedError软替换。
-
224
-
2026-01-27 18:26:03
- Python 装饰器在类方法中的特殊处理
- 装饰器加在@staticmethod/@classmethod外侧会失效,因其作用于描述符而非函数;应置于内侧。@property同理,装饰器需支持__get__协议。实例方法装饰须用functools.wraps避免self丢失。
-
984
-
2026-01-27 18:26:03
-
2026-01-27 18:30:15
- Linux 内核升级后的回滚方案
- 重启时长按Shift(BIOS)或按Esc(UEFI)调出GRUB菜单,选旧内核如vmlinuz-5.15.0-91-generic启动;确保GRUB_SAVEDEFAULT=true,检查GRUB_TIMEOUT非0,UEFI需禁用SecureBoot;删新内核用aptautoremove--purge,勿手动rm;initramfs损坏则用sudoupdate-initramfs-u-k5.15.0-91-generic修复;生产环境依赖grub-reboot或LVM/btrfs快照实现回滚
-
909
-
2026-01-27 18:34:02