Мой Perl-скрипт должен ждать, пока другой скрипт не завершит свою работу
Я новичок в скриптовых языках и хочу задать простой вопрос.
#!/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 ответ
Попробуйте использовать отладчик Perl. Это просто в использовании, просто запустите:
perl -d yourscript
и это начнется. Тогда вы можете использовать следующие команды:
n
- запустить следующее заявление
l
- список сценариев Perl
p var
- выведите некоторую переменную
s
- перейти в функцию (а не выполнять всю функцию)
b 16
- установить точку останова в строке 16
r
- работать до следующей точки останова или до конца
q
- уволиться