Chinaunix首页 | 论坛 | 博客
  • 博客访问: 93384
  • 博文数量: 38
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-01 10:17
文章分类
文章存档

2011年(38)

我的朋友

分类: LINUX

2011-05-15 02:54:05

192.168.178.50
/root/libvirt-0.4.6/python

yum install libvirt-devel
g++ -lvirt  myxm.cpp


use in qt
LIBS          = $(SUBLIBS)  -L/usr/local/Trolltech/Qt-4.3.2/lib -lQtGui -L/usr/local/Trolltech/Qt-4.3.2/lib -L/usr/X11R6/lib -lpng -lSM -lICE -pthread -L/lib -pthread -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lglib-2.0 -lrt -ldl -lpthread -lvirt




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


 virDomainLookupByName ( conn, 
const char * name) //这个函数只要OS存在,不需要运行,就不返回NULL,如果不存在OS,则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) ************

 

 :************

本地机结果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);  

阅读(2649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~