Perl脚本:命令行和CGI的不同结果

时间:2013-07-27 11:01:22

标签: perl apache cgi

警告:我是perl和CGI的初学者,所以这可能是个愚蠢的问题。

我编写了一个非常简单的perl脚本,它应该获取有关打开文件和在系统上运行进程的信息。这个过程有类似的功能:

sub num_processes() {
    my @lines = `/bin/ps -ef`;
    return scalar @lines;
}

如果我从bash运行它,它会返回系统上所有正在运行的进程,但是当我通过apache和CGI运行它时,它只重新运行2个进程(运行脚本并运行'ps -ef')。此CGI脚本在启用了shell(/ bin / bash)的用户下运行。如何通过apache和CGI获得所有进程是否有任何可能性?

1 个答案:

答案 0 :(得分:1)

您的CGI脚本将作为Apache用户帐户运行。您的shell调用将作为您的用户帐户运行。这可能就是为什么你得到两个不同的答案。看看suEXEC之类的东西来管理运行CGI脚本的用户。

相关问题