Perl脚本:命令行和CGI的不同结果
警告:我是perl和CGI初学者,所以这可能是一个愚蠢的问题 我编写了一个非常简单的perl脚本,它应该可以获得有关系统上打开的文件和运行进程的信息。对于流程,有类似于此的函数:Perl脚本:命令行和CGI的不同结果,perl,apache,cgi,Perl,Apache,Cgi,警告:我是perl和CGI初学者,所以这可能是一个愚蠢的问题 我编写了一个非常简单的perl脚本,它应该可以获得有关系统上打开的文件和运行进程的信息。对于流程,有类似于此的函数: sub num_processes() { my @lines = `/bin/ps -ef`; return scalar @lines; } 若我从bash运行它,它将返回系统上所有正在运行的进程,但当我通过apache和CGI运行它时,它只运行2个进程(运行脚本并运行“ps-ef”)。此CGI脚
sub num_processes() {
my @lines = `/bin/ps -ef`;
return scalar @lines;
}
若我从bash运行它,它将返回系统上所有正在运行的进程,但当我通过apache和CGI运行它时,它只运行2个进程(运行脚本并运行“ps-ef”)。此CGI脚本在启用shell(/bin/bash)的用户下运行。是否有可能通过apache和CGI获取所有进程?您的CGI脚本将作为apache用户帐户运行。您的shell调用将作为您的用户帐户运行。这可能就是为什么你会得到两个不同的答案。看看类似于管理运行CGI脚本的用户的东西。您的CGI脚本将作为Apache用户帐户运行。您的shell调用将作为您的用户帐户运行。这可能就是为什么你会得到两个不同的答案。看看类似于管理运行CGI脚本的用户的东西。感谢您的反应,但我忘了添加信息,运行scipt的用户不同于apache one(感谢suexec),并且启用了shell。两个不同的用户将看到不同的进程列表,因此,您可能遇到了预期的行为。感谢您的反应,但我忘了添加信息,运行scipt的用户不同于apache one(感谢suexec),并且启用了shell。两个不同的用户将看到不同的进程列表,那么您可能遇到了预期的行为。那么
num\u进程
返回@行的大小
数组?那么num\u进程
返回@行的大小
数组?