Пересылка сигналов дочерним процессам - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть сценарий оболочки, который запускает сессию ssh на удаленном хосте и передает вывод другому локальному сценарию, например:

#!/bin/sh
ssh user@host 'while true ; do get-info ; sleep 1 ; done' | awk -f parse-info.awk

Работает нормально. Я запускаю его под программой 'supervise' из daemontools djb. Единственная проблема - отключение демона. Если я завершу процесс для этого сценария оболочки, процессы ssh и awk продолжат работать как сироты. Обычно я решал бы эту проблему с помощью exec, чтобы заменить контролирующий процесс оболочки, но эти два процесса выполняются в своих собственных подоболочках и не могут заменить процесс оболочки.

Я хотел бы, чтобы управляющий скрипт оболочки «переадресовывал» любые сигналы, которые он получает, по крайней мере, на один из дочерних процессов, чтобы я мог разорвать канал и полностью завершить работу. Есть ли простой способ сделать это?

1 Ответ

0 голосов
/ 27 мая 2011

Межпроцессное взаимодействие.

Вы должны смотреть на трубы и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...