0
CGIからは動作しません(置き換える以下のスクリプトを実行する前に/ホーム/ポートン/ T /作成または消去する権利を持っているファイルへのパスに移動します。)Perlの群れは
を、私はこのスクリプトを起動するとコマンドラインから、10秒の間には、再度コマンドラインから同じスクリプトを起動し、それは私が何を期待出力します
Flock: 1
と
Flock: 0
を相応に。
しかし、それは両方の2つのCGI要求を
Flock: 1
を印刷しhttp://test.localhost/cgi-bin/test2.plように私は、CGIとして(要求未満10秒の時間間隔で)を2回、それを実行したとき。
エラーは何ですか?なぜCGIから実行すると、別の予期しない方法で動作するのですか?
#!/usr/bin/perl
use strict;
use warnings;
use Fcntl qw(:flock);
print "Content-Type: text/plain\n\n";
open(my $lock_fh, '>', "/home/porton/t/MOVE");
print "Flock: " . flock($lock_fh, LOCK_EX|LOCK_NB) . "\n";
sleep 10;
Debian LinuxではApache/2.2.16を使用しています。私はそれが要求を連続して処理できるかどうか疑問に思います。これをチェックするには? – porton
ロック/スリープの前後にスクリプトがタイムスタンプを出力するようにしてください。彼らが順番に実行している場合は、 "前/後/前/後"のパターンが得られます。並列の場合は、前/後/後のパターンが得られます。 – CanSpice