用popen()不知道行不行,我还没试过.

解决方案 »

  1.   

    <?php    $resultArray = array();
        exec( 'top', $resultArray );
        print_r( $resultArray );?>
      

  2.   

    unixdotnet(concinnity)
    这段代码我试过了。top命令好象并没有运行起来啊。我运行了php脚本,然后ps查看了进程,并没有top存在的。
    知道还可以怎么做吗?
      

  3.   

    unixdotnet(concinnity)
    可以的,有top进程但是没有输出
      

  4.   

    unixdotnet(concinnity)
    不会吧。ps -all我看不到有top进程呢。
    是不是要设什么东西啊?
      

  5.   

    exec("top -b >/top.dump &");
    把/top.dump改成你希望它输出内容的地方。
      

  6.   

    我按照exec("top -b > /var/www/html/netnumen/netnumen.dump &");的语句写了,但是发现还是没有top进程被起起来啊?是什么原因啊?是参数串需要进行些处理吗?高手指点吧。急急急。周日前要搞定。感激涕零!
      

  7.   

    <?php
      $a = system('top');
      echo $a;
    ?>
      

  8.   

    看了一下手册,就用system就可以。
      

  9.   

    我用过system了。
    system('top');
    但是没有任何结果。进程里也没有top进程啊
      

  10.   

    不可能啊,我的echo (system('top'))结果:
    last pid: 6019; load averages: 0.16, 0.08, 0.03 up 26+11:55:50 23:26:57 72 processes: 1 running, 71 sleeping Mem: 142M Active, 271M Inact, 60M Wired, 16M Cache, 61M Buf, 10M Free Swap: 1024M Total, 164K Used, 1024M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND 197 jabber 2 0 2932K 2304K select 0 152:49 0.00% 0.00% perl 188 mysql 2 14 89704K 31656K select 1 37:36 0.00% 0.00% mysqld 187 mysql 2 14 89704K 31656K select 1 27:27 0.00% 0.00% mysqld 6198 nobody 2 0 15868K 10316K accept 1 6:01 0.00% 0.00% httpd 6199 nobody 2 0 15428K 9892K accept 0 5:39 0.00% 0.00% httpd 6200 nobody -6 0 15876K 10384K piperd 0 5:38 0.00% 0.00% httpd 73125 nobody 2 0 15536K 10048K accept 0 2:06 0.00% 0.00% httpd 221 root 2 0 2168K 1364K select 0 2:04 0.00% 0.00% nmbd 180 root 2 0 2452K 1628K select 1 1:09 0.00% 0.00% httpd 176 root 2 0 9908K 4000K select 1 1:02 0.00% 0.00% httpd 190 root 2 0 10132K 4056K select 1 0:59 0.00% 0.00% httpd 10325 nobody 2 0 15364K 9880K accept 1 0:58 0.00% 0.00% httpd 5130 nobody 2 0 15372K 9876K accept 1 0:56 0.00% 0.00% httpd 6197 root 2 0 10192K 4028K select 0 0:54 0.00% 0.00% httpd 186 nobody 2 0 15352K 9840K accept 1 0:51 0.00% 0.00% httpd 9956 nobody 2 0 15388K 9888K accept 1 0:50 0.00% 0.00% httpd 10361 nobody 2 0 15388K 9968K accept 0 0:49 0.00% 0.00% httpd 10295 nobody 2 0 15388K 9888K accept 1 0:43 0.00% 0.00% httpd系统是freebsd。
      

  11.   

    请问各位高手top命令是做什么用的?
      

  12.   

    查看系统状况,保持内存, cpu占用。机器负担等等资料。
      

  13.   

    再请教一句,echo (system('top'));
    这句命令是直接在命令行输入的,还是写在php脚本里的啊?
      

  14.   

    我是用的ps  -aux的啊。但是的确没有需要的进程
      

  15.   

    这个问题和我以前用过一个刚好有点相反,我当时的要求时在命令行执行PHP命令时,不要有显示(即在后执行,不需要返回进程)可是老实现不了,PHP程序一直要等到后台执行完才执行下一个功能模块。楼主如果没有看到,就说明没有执行。
      

  16.   

    <? echo(system('top')); ?>
    另外,看下popen函数,今天刚看到有人用过。试试看
      

  17.   

    也许是apache不能执行这个命令呢。
      

  18.   

    不会吧。我用top -b就能看到有top进程在跑。你看看/var/www/html/netnumen/netnumen.dump这里面有没有信息输出?如果确实没有启动起来那应该是你的apache用户的权限问题?
    exec("top -b > 1>/var/www/html/netnumen/netnumen.dump 2>&1 &");
    这样运行看看netnumen.dump的输出内容。
      

  19.   

    楼主的问题是什么呀?这个与PHP怎么执行有什么关系各位不要乱讲话啊,不管是什么程序我还没见过什么程序可以启动子进程后,结束自己,继续子进程执行有吗?举个例子,在Windows平台下装个VM里面启动一个Linux
    谁可以把Windows关闭,而继续运行里面的Linux再举个例子,打开电脑启动操作系统,然后切断电源,让电脑继续启动?????父进程只能挂起,但不能结束的!!!!
      

  20.   

    top 是不能结束的进程(除手工干预)
    它没有执行完PHP也无法结束,所以PHP认为它超时了
      

  21.   

    如果执行
    exec("top &");
    //父进程结束让子进程挂起???这是谁想的,子进程挂起,它也是在运行的呀top: tcgetattr() failed: Inappropriate ioctl for device
      

  22.   

    Mistruster(弱智d):请先去man top看看top的帮助文档。-b参数不是白加的。不要在这里误人子弟
      

  23.   

    我说过有参数的情况吗?如果加上 -b,top命令不就结束了吗
    有孛于楼主的“只能执行些象ps,ls之类的会完成后返回的命令”的意向如果只是想得到一个程序的执行结果当然会有很多办法了这只是说top,那要换成执行vim怎么办,你不会告诉我用vim -q吧……---我只是说:
    因为PHP的执行时间比较短,
    所以它可以调用的子进程也必须很快执行完毕,
    不可能PHP的执行正常结束,而它调用的子进程还在继续执行……
      

  24.   

    请教 Mistruster(弱智d)
    那么你认为我要实现我的目的,程序该怎么实现呢?不知道你清楚我的编码目的没有,这个问题捆饶我很久了。