在chroot模式下从Binary调用脚本,无法正常工作

时间:2012-10-03 11:42:41

标签: c linux ubuntu snmp net-snmp

名为= program.c

的程序的一部分
int memoryPercent()
{
    int memoryPercent=0;
    FILE *pipe1 = NULL;

    pipe1=popen("/home/jatin/scripts/memoryPercent.sh","r");

    if(!pipe1)
    {
        snmp_log(LOG_ERR,"popen failed in temp(),errno:%d\n",errno);
        return -1;
    }

    if( fscanf(pipe1,"%d",&memoryPercent) != 1) 
    {
        snmp_log(LOG_ERR,"fscanf failed in temp fun(),errno:\n");
        return -2;
    }

    pclose(pipe1);
    return memoryPercent;
}

上面是我的调用代码/home/jatin/scripts/memoryPercent.sh     在这个位置给出了一个脚本,它返回一个INTEGER值。

在UBUNTU 12.04中,当我编译并执行此代码时,它运行得很好。

但在我的VM-WARE中

我已经在/ var / snmp3位置复制了所有必需的依赖项,并使用CHROOT执行此二进制文件,语法为

/usr/sbin/chroot /var/snmp3/ /usr/local/bin/program

它只显示值“-1”!! 谁能告诉我我错过了什么?

脚本位于/var/snmp3/home/jatin/scripts/memoryPercent.sh的同一位置 以及775模式中的/home/jatin/scripts/memoryPercent.sh ....

1 个答案:

答案 0 :(得分:0)

尝试从chrooted shell手动运行脚本。

我认为你缺少memoryPercent.sh使用的shell。您是否已将shell复制到chrooted环境中?