(Перед запуском приведенного ниже сценария замените / home / porton / t / MOVE на путь к файлу, который вы имеете право создавать или удалять.)
Когда я запускаю этот сценарий из командной строки ив течение 10 секунд снова запустить тот же сценарий из командной строки, он печатает то, что я ожидаю:
Flock: 1
и
Flock: 0
соответственно.
Но когда я запускаю егодважды (с интервалом между запросами менее 10 секунд) как CGI, равный http://test.localhost/cgi-bin/test2.pl, он печатает
Flock: 1
для обоих двух запросов CGI.
Чтоэто ошибка?Почему он работает неожиданным образом при запуске из 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;