LINUX.ORG.RU

Чтение ввода из фонового процесса


0

1

Добрый день! Я в линуксе новичек, поэтому прошу сильно не пинать..

Вопрос такой: есть скрипт, выполняемый в bash, который производит некоторые действия с БД. В процессе его работы БД может заблокировать кто-то другой и скрипт повисает, ожидая освобождения ресурса. Чтобы он висел не просто так, перед началом выполения каких-либо операций я из главного скрипта запускаю еще один работающий в фоне (с «&»). Этот фоновый скрипт периодически проверяет БД на блокировки, и если они возникают печатает соответствующее предупреждение.

А вопрос такой, допустим пользователь не хочет ждать завершения, для этого из фонового процесса я печатаю ему что-то типа «для выхода введите exit, иначе...», но вот считать с клавиатуры ничего не могу!

Перечитал много инфы по теме, выяснил что фоновые процессы не могут читать из стандартного ввода. Но перевести его на первый план тоже не могу, т.к. второй скрипт был запущен не с терминала, а из первого то и команда jobs выводит только первый скрипт...

В общем ищу способы как выйти из данной ситуации, буду благодарен за любые предложения.


Ответ на: комментарий от ananas

если вы про перехват сигналов TTIN/TTOU то не работает. причем если я отправляю эти сигналы вручную, то они перехватываются. Если вы имели в виду что-то другое, поясните пожалуйста...

Lifter
() автор топика
Ответ на: комментарий от Lifter

повесь обработчик SIGTERM с корректным завершение скрипта, и прибивай его посылкой SIGTERM вместо вбивания exit с клавиатуры

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.