私はスクリプト言語に慣れていないので、簡単な質問をしたいと思います。
#!/usr/bin/perl
my $process_id = shift;
execute();
sub execute() {
system("cd", "bin");
my $output = `pcp.sh -p $process_id`;
if (index($output, "some string") != -1) {
print("Information 1.0 :Standalone server works fine \n");
}
else {
print("Information 2.0 Standalone server have some problems)\n");
}
}
「pcp.sh」については、リンクをたどってください:
http://www.oracle.com/technetwork/systems/security/pcp-149863.txt
このスクリプトは端末で動作し、戻ります
Information 1.0 Standalone server works fine
しかし、私はスクリプトの監視を行っており、監視ツールは出力を戻り値として取得します。(それは非常に奇妙です。)スクリプトの実行中に監視ツールで次のように表示されます
Information 2.0 Standalone server have some problems
から出力を取得する必要がありますpcp.sh
。コードのこのpcp.sh -p $process_id
部分は約 1 分間実行されます。監視ツールは、おそらく 5 秒間実行されます。待たなければならないことは理解していますが、この仕事をどう処理したらよいかわかりません。