免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2056 | 回复: 1
打印 上一主题 下一主题

主机通过vmrun命令执行虚拟机下的perl脚本时,为什么没有生效呢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-15 20:26 |只看该作者 |倒序浏览
我打算用命令行vmrun控制虚拟机,例如在宿主机上(windows)执行调用虚拟机下的perl脚本,使该脚本开始工作。但是,我在宿主机上执行命令时,明明已经生成了脚本中该生成的文件(说明已经开始执行脚本),但该文件却为空。具体代码如下:其中$Bin/xxx.sh那行命令会打印日志到test.log文件中。如果在虚拟机中直接运行该脚本是能够正常运行的,使用vmrun执行却不行。请各位帮忙分析一下原因。我已经折腾了2天了,没有结果,很郁闷。谢谢!
调用虚拟机中脚本的命令如下:
vmrun -T ws -gu user -gp pwd runProgramInGuest E:\虚拟机\Ubuntu_11.10_64\Ubuntu_11.10_64.vmx "/usr/bin/perl"  "/root/桌面/test.pl"
虚拟机里的代码(test.pl)如下:

  1. #!/usr/bin/perl
  2. use Thread;
  3. use FindBin qw($Bin);
  4. #print $Bin;

  5. #由于开始某进程后,该进程不会退出,所以需要使用另一个线程来监听那个进程的结果。
  6. my $thread=Thread->new(\&checkResult);
  7. my $thread2=Thread->new(\&startExec,"aaa","111");

  8. $thread->join();
  9. exit 0;
  10. $thread2->join();
  11. exit 0;

  12. sub startExec
  13. {
  14.         my($user,$pwd)=@_;
  15.         #system("ls > $Bin/test.log");
  16.         my $auth_info= system("$Bin/xxx.sh -u $user -p $pwd | tee -a $Bin/test.log");
  17. }

  18. sub checkResult
  19. {
  20.         my $wait_seconds=0;
  21.         while(1)
  22.         {
  23.                 sleep 1;
  24.                 $wait_seconds++;
  25.                 if($wait_seconds >= 20)
  26.                 {
  27.                         my $result=`cat $Bin/test.log`;
  28.                         if($result =~ /成功/){
  29.                                 print "成功了!\n";
  30.                         }else{
  31.                        
  32.                                 print "失败了!\n";
  33.                         }
  34.                         last;
  35.                         #exit 1;
  36.                 }
  37.         }
  38. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-05-15 22:09 |只看该作者
有没有相关经验的前辈呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP