Назад | Перейти на главную страницу

Bash и блокирующие процессы

Не могли бы вы помочь мне с синтаксисом Bash добиться следующего?

  1. Запустите процесс блокировки, не блокируя выполнение остальной части скрипта.
  2. Запустите стандартный «неблокирующий» процесс (например, lsof).
  3. «Повторно присоединитесь» к процессу блокировки, чтобы ^ C остановил этот процесс, а затем завершите выполнение скрипта.

Это идиоматический способ сделать это?

#!/bin/bash
function handle_int()
{
    kill $BCPID
    exit
}
trap handle_int INT

blocking_command &
BCPID=$!

non_blocking_command
wait
# script
command &
# more script
wait