Perl で PID が有効になるまで、ログ ファイルをチェックする必要があります。bashでは問題なく動作しています。
tail -f --pid=1234 logfile.log
今度は、PID をチェックするか、時間間隔を指定してログ ファイルをチェックするために、perl でも同じことを行う必要があります。
次のコードを使用して perl で実行していますが、ファイルを追跡でき、2 つの問題があります。
1) ファイルの末尾がすぐに発生しない。
2) 数秒後、たとえば 100 秒後にテールを閉じたい。
use warnings;
use strict;
use File::Tail;
my $name='/tmp/out';
my $file=File::Tail->new(name=>$name,interval=>1,maxinterval=>5,adjustafter=>1);
my ($found,$timeleft,@pending) = File::Tail::select(undef,undef,undef,100,$file);
if ($found)
{
print $pending[0]->read;
}
上記のコードを使用していますが、わずか 2 秒で終了します。指定された時間の後に終了するために、Linuxの正確なtailfコマンドのようなファイルを追跡することを探しています。
ありがとう。