2011年(38)
分类: LINUX
2011-05-15 02:54:05
VM中的两种暂停:
virConnectPtr conn;
conn = virConnectOpen(NULL);
virDomainPtr domain1;
domain1 = virDomainLookupByName(conn, "centos5");
if(domain1 == NULL)
cout << "lookupbyID error" << endl;
//if(-1 == virDomainSuspend(domain1))//只是暂时停止,没有保存,状态为pause
// if(-1 == virDomainResume(domain1));//暂时停止的反向
// cout << "error" << endl;
if(-1 == virDomainSave(domain1, "centosSave"));//状态为no state,完成后生成内存保存文件
//shutdown and save memory,关闭VNC
//if(-1 == virDomainRestore(conn, "centosSave")) //virDomainSave的反向,完成后,save文件不会自动删除,要手动,相当于重新运行一个VM,但在save文件存在
virDomainInfo domainInfo;
if(0 == virDomainGetInfo(domain1, &domainInfo))
cout << (int)domainInfo.state << endl;
virConnectClose(conn);
1 . virDomainLookupByID:得到 ****//要运行时才不NULL
2 . virDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info): 得到domain信息
注:使用时info时,应该 virDomainInfo info; 然后:&info *************
3 . virDomainGetName: 得到domain名字 ****
4. virConnectListDomains: 得到所有活动的domainID ***********
?????virConnectListDefinedDomains:list the defined but inactive domains
virConnectOpen **********
conn = virConnectOpen("xen+ssh://root@192.168.178.2xen+ssh://root@192.168.178.503");
char* ch = virConnectGetURI(conn);//user remote inface
cout << ch << endl;
结果:xen+ssh://root@192.168.178.23 登陆时要输入密码
5 virConnectClose 关闭XEN连接 *********
6 virConnectGetHostname //得到物理机用户名************
:如果用的是XEN,则输出xen
Get the name of the Hypervisor software used
7 参数用virConnectGetType(conn) ************
8 :************
本地机结果xen////
远程结果:结果:xen+ssh://root@192.168.178.23
:**********
直接输出: linux或其它OS
virDomainGetUUIDString 结果: c8fcceec-1dcb-1c9d-189e-1a0c790acea7:**********
用完一个domain后要free它:
void closeConn()
{
if (conn != NULL)
virConnectClose(conn);