У меня есть следующие настройки:Убить ребенок-сценарий, когда он испускает определенную строку
#!/bin/bash
# call.sh
voip_binary $1
Теперь, когда я некоторое событие происходит (когда я повесить трубку), то voip_binary
излучает определенную строку: ... [DISCONNCTD] ...
Однако сценарий не останавливается, но продолжает работать. Теперь, как только DISCONNCTD
обнаружен на выходе, я хочу убить скрипт.
Так что я мог бы сделать следующее, чтобы получить соответствующий вывод:
voip_binary $1 | grep DISCONNCTD
Хотя я теперь только получить соответствующий вывод из двоичного файла, я до сих пор не знаю, как убить его, как только линия испускается.
Вы используете ловушку (а иногда и ловушку для ловушки также помогает?). Если да, вы можете использовать SIG xx, когда увидите, что значение возвращается как DISCNNCTD и убивает его с помощью сигналов -15 или -9. –
@ArunSangal, мои знания ограничены, и 'SIG xx' не означает многого. Если вы предоставите ответ, который будет работать, я с радостью его приму. – Besi
См.: Kill -l, он перечислит все сигналы (с именем и их номером), которые пользователь может отправить, чтобы убить его. для ex: kill -9 12345 (для уничтожения процесса с PID 12345). –