Skip to main content

Virtualization

如何设计虚拟机的关机流程

·925 words·5 mins
虚拟机的关机流程很容易被写成一团:收到用户中断,发一个信号,关几个服务,杀掉虚拟机,然后退出。 这看起来能工作,但一旦运行时变复杂,就会暴露出许多问题:日志丢失、磁盘没来得及 sync、guest-agent 没跑完整、宿主侧代理提前退出、第二次 Ctrl-C 也不能立刻结束。 这次 revm 的关机流程重构,本质上不是修一个 Go 代码问题,而是重新思考一个虚拟机运行时应该如何表达“关机”。