为什么是虚拟机WoL?
我有一台HP MicroServer Gen8服务器,操作系统是Windows Server 2012R2。上面跑了一个VirtualBox的CentOS虚拟机。有的时候我需要通过WoL启动宿主服务器,再启动虚拟机。但我并不是每次启动服务器后都立即启动虚拟机,所以最佳的方式是启动一个服务来监听WoL报文,一旦有匹配上虚拟机MAC的WoL报文达到,就启动虚拟机(通常是采用命令行在后台启动虚拟机,没有窗口界面)。但这个需求似乎很小众,GitHub上这类项目不多,且都是8~10年以上的老项目,还都没有实际代码。另外有一个Wake-On-LAN Virtual Machine,功能完美匹配我的需求,但我从来没有成功启动过,而且这还是个收费软件。
没办法,只能自己造轮子了。但普通的Windows服务开发我打算略过,我也不过是看了几篇博客和微软的官方文档。这里重点记录一下开发过程中的遇到的一些坑。