1

警告:我是 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​​ 获取所有进程?

4

1 回答 1

1

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

于 2013-07-27T11:14:21.323 回答