У меня есть скрипт, который запускает в SSH сессии к удаленному хосту и труб выход на другой, локальный скрипт, например, так:Экспедиторские сигналы дочерних процессов
#!/bin/sh
ssh [email protected] 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk
Он работает отлично. Я запускаю его под программой «supervise» из daemontools djb. Единственная проблема - выключение демона. Если я завершаю процесс для этого сценария оболочки, процессы ssh и awk продолжают работать как сироты. Обычно я решил бы эту проблему с exec
, чтобы заменить процесс надзорной оболочки, но два процесса выполняются в своих подоболочках и не могут заменить процесс оболочки.
Что бы я хотел сделать, так это иметь надзорный сценарий оболочки «вперед» любые сигналы, которые он получает, по крайней мере, на один из дочерних процессов, чтобы я мог нарушить работу трубы и закрыть ее. Есть простой способ сделать это?