私は現在、データベースから提供された一連の引数を持つ3つ(またはそれ以上)のphpスクリプトを起動するために使用しようとしているperlスクリプトを持っています:
$sql = "SELECT id,url,added,lasttotal,lastsnapshot,speed,nextsnapshot FROM urls WHERE DATE(NOW()) > DATE(nextsnapshot) LIMIT 0,3";
$sth = $dbh->prepare($sql);
$sth->execute or print "SQL Error: $DBI::errstr\n";
my ($urlID, $url, $added,$lastTotal,$lastSnapshot,$lastSpeed,$nextsnapshot);
$sth->bind_col(1, \$urlID);
$sth->bind_col(2, \$url);
$sth->bind_col(3, \$added);
$sth->bind_col(4, \$lastTotal);
$sth->bind_col(5, \$lastSnapshot);
$sth->bind_col(6, \$lastSpeed);
$sth->bind_col(7, \$nextsnapshot);
while ($sth->fetch) {
$myexec = "php /usr/www/users/blah/blah/launch_snapshot.php '$url' $urlID '$added' $lastTotal '$lastSnapshot' $lastSpeed".' /dev/null 2>&1 &';
exec ($myexec) or print "\n Couldn't exec $myexec: $!";
}
PHP スクリプトの結果は気にしません。一度にすべてを開始するか、非常にわずかな遅延で開始する必要があります。
フェッチは適切に機能し、3 つの一意の値のセットを返します。ただし、最初の php スクリプトを起動することは決してないようです。エラーメッセージは表示されません。
どんな助けでも大歓迎です。