Je suis en train d'exécuter un script php avec des arguments, en utilisant le pilote perl suivant:Utiliser getopt Long pour conduire une commande système sur linux
#!/opt/local/bin/perl
use strict;
use warnings;
use Getopt::Long;
use Cwd;
my %args =();
GetOptions(
\%args, "NUM_AGENTS|a=s",
"HOST_NAME|h=s", "TIME_STAGGER|t=s",
"USER_NAME|un=s", "USER_PASS|pw=s",
"TARGET_PAGE|p=s"
) or die "Unknown parameter!\n";
my $i = 0;
my $startTime = time;
my $pwd = getcwd();
my $logdir = "$pwd/load-logs";
mkdir $logdir
or die "Cannot mkdir $logdir: $!"
unless -d $logdir;
chmod 0755, $logdir or die "Cannot chmod 0755 $logdir: $!";
my $startTimeTemp = $args{NUM_AGENTS} + $startTime;
my $startTime2 = $startTimeTemp + 10;
mkdir("$logdir/$startTime2", 0777)
or die "Cannot mkdir $logdir/$startTime2: $!"
unless -d "$logdir/$startTime2";
my $random_number = rand() * 10;
my $execDelay =
($random_number % $args{TIME_STAGGER}) * (($random_number % 100));
my $procStartTime = $startTime2 + $execDelay;
my $reqlogfile = "$logdir/$startTime2/req.log";
my $resplogfile = "$logdir/$startTime2/resp.log";
print "NUM_AGENTS: " . "$args{NUM_AGENTS}\n";
print "HOST_NAME: " . "$args{HOST_NAME}\n";
print "procStartTime: " . "$procStartTime\n";
print "i: " . "$i\n";
print "TARGET_PAGE: " . "$args{TARGET_PAGE}\n";
print "resplogfile: " . "$resplogfile\n";
print "USER_NAME: " . "$args{USER_NAME}\n";
print "USER_PASS: " . "$args{USER_PASS}\n";
print "execDelay: " . "$execDelay\n";
print "COMMON_SID: " . "$args{COMMON_SID}\n";
while ($args{NUM_AGENTS} > $i) {
$i++;
print "count: " . "$i\n";
my $argString =
"'$args{NUM_AGENTS}' '$args{HOST_NAME}' '$procStartTime' '$i' '$args{TARGET_PAGE}' 'resplogfile' '$reqlogfile' '$args{USER_NAME}' '$args{USER_PASS}' '$execDelay' '$args{COMMON_SID}'";
system("php loadAgent_curl.php $argString") == 0 or die "failed to execute: $!";
sleep 1;
#system("ls");
}
mais il semble que quelque chose ne va pas avec:
system("php loadAgent_curl.php $argString")
puisque le système ls commandes fonctionne très bien, mais la commande php avec des arguments qui ne fonctionne pas
les arguments de ligne de commande ot ce script Perl peut être:
-a -h 10 ktest.test.net -t 5 -UN administration -pw adminpassword -p "acViewer/index.html? DateDébut = 20090926040000 20111220235959 & EndDate ="
Quel est le chemin complet vers le binaire 'php'? Est-ce dans le PATH? Pourquoi ne pas essayer de le qualifier pleinement? – ircmaxell
Le script PHP est-il en cours d'exécution ou non? Essayez de résoudre le problème. – justintime