- と を使用
use warnings;していuse strict;ますか?
pgrepの代わりに使用するのはpsどうですか?
$return複数の行を返すとどうなりますか?
サブルーチンがプロセスが実行されているかどうかを確認するだけで、それを別のループで使用した場合、プログラムの流れは良くなります。
ここでは、チェック プロセス サブルーチンが、見つかったすべてのプロセスのリストを返します。これをループで使用して、プロセス自体が停止したかどうかを確認できます。qx()プロセス リストを取得し、それを使用してプロセスのリストを作成することもできsplitました。
use warnings;
use strict;
use feature qw(say);
use constant {
PROCESS => "MInstaller",
SLEEP => 5,
};
while ( process_check( PROCESS ) ) {
say qq(Process ) . PROCESS . qq( is running...);
sleep SLEEP;;
}
say qq(Process ) . PROCESS . qq( has ended.);
sub process_check {
my $process = shift;
open ( my $process_fh, "-|", "pgrep $process" );
my @process_list;
while ( my $line = <$process_fh> ) {
chomp $line;
push @process_list, $line;
}
close $process_fh;
return @process_list;
}