В конечном счете ежедневная газета ISOs вернулась назад к использованию GNOME как настольная среда.
Когда Вы совершаете нападки Ctrl-C
, под управлением сценарий получает SIGINT и распространяет его к, он - дети, тогда как на "регулярном" выходе он отправил бы SIGTERM по умолчанию (от функции, зарегистрированной с EXIT
).
Тем не менее существует большая разница между Ctrl-C
и условие остановки. В то время как функцию-обработчик выхода называют в обоих случаях, фактические события полностью отличаются. В случае SIGINT дочерние процессы уничтожаются тот одним (или по крайней мере, вероятно, будут), и оболочка, интерпретирующая сценарий, не имеет большого шанса сообщить об этом изменении состояния. В другом случае это ловит SIGCHLD из завершенных программ и отображает информационное сообщение.
Теперь, можно получить сообщение на SIGINT также, если Вы даете оболочке интерпретации достаточно времени для проверки (более точно - так как я не думаю, что оболочка разбросала бы процессы-зомби в этой ситуации - для создания отчетов о состоянии), его дочерние процессы. Один способ сделать это использовал бы wait
встроенный для активного ожидания всех или указанных процессов для изменения состояния. Аварийное завершение обработчика выходов (например, с другим sleep
) мог бы быть опция также, но отметить, что это на самом деле - вид состояния состязания между завершением интерпретатора и проверением его детей (следовательно блокирование wait
безопасный путь состоит в том, чтобы сделать это).
touch stop
, сценарий прекращает регистрироваться (уничтожает кошку и хвост), и затем ожидает файла запуска снова. Это не выходит, таким образом, Ваш ответ, кажется, описывает другую ситуацию – Christoph 17.04.2013, 09:59wait
вon_die
потому что "другой конец" этого сценария вызывает проблемы. Я дам Вам обновление, как только я могу! – Christoph 19.04.2013, 23:28wait
и это теперь дает мне последовательный вывод в реальном приложении.Спасибо! – Christoph 24.04.2013, 14:38