問題:
安裝 kvm 虛擬化並且安裝客戶機之后,通過 virsh shutdown 命令無法關閉客戶機,只能通過 virsh destroy 進行強制關閉電源。雖然這也是一種方法,但是直接斷電顯然有點不妥,並且你並不知道何時會出現一些奇奇怪怪的問題。
在下圖中我分別對客戶機 centos6.5 和 hongxuecentos6.5 試圖執行 virsh shutdown 進行正常關閉,輸出信息為: Domain “client” is being shutdown,但是通過 virsh list –all 進行查看
解決方案:
shutdown使用發送acpi指令來控制虛擬機的電源,而KVM虛擬機安裝linux系統時默認沒有安裝acpid服務,反以導致不能關閉虛擬機,需要安裝acpid。
分別在兩台虛擬機中安裝 acpi 服務,並且開啟 acpid 服務
 
 
等待acpid服務啟動之后,即可通過 virsh shutdown 來正常關機。
 

acpid 介紹(以下內容來自百度百科):
ACPId服務是AdvancedConfigurationandPowerInterface縮寫,acpid中的d則代表daemon。Acpid是一個用戶空間的服務進程,它充當Linux內核與應用程序之間通信的接口,負責將kernel中的電源管理事件轉發給應用程序。
ACPId服務與內核的通信方式:acpid用poll函數掛在/proc/acpi/event文件上。內核在drivers/acpi/event.c中實現了該文件的接口,一旦總線事件列表(acpi_bus_event_list)上有電源管理事件發生,內核就會喚醒掛在/proc/acpi/event上的acpid,acpid再從/proc/acpi/event中讀取相應的事件。acpid與應用程序的通信方式有兩種,
其一是通過本地socket,其文件名為/var/run/acpid.socket,應用程序只要連接到這個socket上,不用發送任何命令就可以接收到acpid轉發的電源管理事件。
其二是通過配置文件。在acpid收到來自內核的電源管理事件時,根據配置文件中的規則執行指定的命令。
ACPId服務配置文件在/etc/acpi/events/目錄下, 
下面是一個示例: 
event=button/power.*action=/sbin/shutdown-hnow 
ACPId服務事件的格式為: 
device_classbus_idtypedata。device_class和bus_id是字符串,type和data是十六制整數。在配置文件中可以使用通配符,來匹配指定的事件。
--------------------- 
作者:亦非我所願丶 
來源:CSDN 
原文:https://blog.csdn.net/wanglei_storage/article/details/51120302 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
