2013-06-14 4 views
-1

Я использую систему «xxxxx» в perl для выполнения некоторой команды в Linux. У меня есть партия команд для выполнения, так что мне нужно знать, когда закончится последняя команда, чтобы я мог отправить следующую. Я не хочу использовать сон (**), потому что я понятия не имею, как долго будет выполняться каждая команда. Есть ли способ, которым я могу отслеживать, когда команда завершена? Большое спасибо.Как использовать Perl-скрипт для проверки того, завершен ли процесс?

+2

Да? 'system (...)' будет блокироваться до завершения команды. Вы знаете, когда последняя команда завершена, так как выполнение вашего скрипта Perl переходит к следующему утверждению. – mob

ответ

-1

Вы могли бы открыть именованный канал и ждать его, чтобы закрыть:

open(PROC, "-|", "/path/to/process") or die "can't open process: $!"; 
# do something 
close(PROC) or die "can't close process: $!"; 

close заявление сделает ожидание Perl скрипт для завершения процесса.

-1

В perl вы можете использовать $? чтобы увидеть статус выхода из командной строки, затем выполните что-то, основанное на том, было ли оно успешным.

`run this command`; 
if ($? != 0) { 
    # do something 
} 
+0

OP не спрашивает о результате команды. – m0skit0

+0

Спасибо большое! Оно работает!! Круто! – user2487477

Смежные вопросы