我不知道是否有人可以帮我解决我的问题,因为我不知道这是编程问题还是网络问题。但是,我会解释整个诉讼 我正在研究网状测试平台,我想运行由某些人开发的安抚奶嘴协议。
问题是,当我尝试使用perl脚本“run_probing.pl”
在测试平台节点上运行探测(这是运行安抚奶嘴的配置的一部分)时, .spp 未创建包含结果的文件,但是当我使用命令./probing –a 10.1.1.26 -i 26
在任何两个节点上手动运行探测命令时,我得到了 .spp < / em>文件
使用pssh服务从perl脚本发送的命令。我使用命令ps aux
检查进程ID,然后我找到了命令
$cmd ="/usr/bin/pssh -p 1 -t 120 -l amr -A -h temp_overlay.crap \"/map/more_pacifier/probing -a $allusnips[$sitecount] -i $allusnipids[$sitecount] > /dev/null 2>&1 & \" ";
在后台为两个设备执行,因为该命令的进程ID在进程ID列表中,这意味着pssh服务本身没有问题。但是我仍然没有在{em> probing.c 代码中指定的/map/more_pacifier
目录中获得任何.spp文件。
对于probing.c代码,由于它很长(大约400行),所以我将把对应的部分放在.spp文件中写入:
FILE *fl;
if(argc < 3) {
usage();
exit(-1);
}
while ((ch = getopt(argc, argv, "h:a:i:d:")) != -1)
switch (ch) {
case 'h':
help();
exit(0);
case 'a':
inaddr = inet_addr(optarg); // IP Address
memset((char*) &myip, 0x0, sizeof(myip));
bcopy((char*) &inaddr, (char*) &myip, sizeof(inaddr));
strcpy(myipstr, inet_ntoa(myip));
fprintf(stderr, "My IP is %s, %s\n", inet_ntoa(myip), myipstr);
break;
case 'i':
myipid = atoi(optarg);
fprintf(stderr, "My ID is %d\n", myipid);
break;
default:
usage();
exit(-1);
}
sprintf(lossfile, "/map/more_pacifier/%d.spp", myipid);
fl = fopen(lossfile, "w");
for(i=0; i<NUMNODES; i++)
ND.NHBR_Table[i].recvcount = 0;
ND.numProbePktsSent = 0;
通过run_probing.pl
脚本运行命令时,我不知道为什么我没有获取 .spp文件。
是否具有此文件的权限访问权限?但我使用chmod 755
命令来授予用户完全访问权限。
我将非常感谢你的帮助,这种奇怪的行为浪费了很多时间而没有任何结果:(