- と を使用
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;
}