Как убить дочерний процесс при отправке прерывания с помощью нажатия клавиши, а затем отправить сигнал родителям о том, что дочерний процесс был убит?Подтверждение сигнала
ответ
Родительский процесс обычно получает сигнал, когда ребенок умирает независимо. Это сигнал SIGCHLD.
Этот сигнал может быть заблокирован родительским процессом, но в остальном он всегда доставлен, когда ребенок выходит по какой-либо причине. Родитель может узнать, почему ребенок вышел из-за использования одного из семейств wait
(aka wait
, wait3
, wait4
или waitpid
) для сбора кода возврата.
Возможно, задача состоит в том, чтобы заставить дочерний процесс иметь фокус, чтобы он получал события клавиатуры.
Вы всегда можете использовать команду kill
для отправки сигнала в данный процесс. Не позволяйте имени убивать вас, вы можете отправить любой сигнал с kill, kill -SIGNUM pid
, но SIGTERM является значением по умолчанию, которое обычно вызывает процесс выхода.
Так что если вы хотите, чтобы послать сигнал SEGV обрабатывать 11 вы могли бы сделать
kill -SEGV 11
Вы можете настроить родительский, чтобы поймать сигнал, повторно отправить его ребенку через вызов, чтобы убить (2), а затем подождите, пока ребенок закончит работу с помощью waitpid.
обработчик сигнала родителя хотели бы что-то вроде этого:
int status;
kill(child_pid, SIG_TO_SEND);/*send to child*/
waitpid(child_pid, &status);/* wait for child to give up */
Если вы серьезно о сохранении родителей и знал, что сигнал был только для ребенка, вы, вероятно, установить переменную в родительском, выйдите из обработчика сигнала, а затем выполните работу по отправке и ожиданию ребенка. В общем, хорошо как можно быстрее выйти из обработчиков сигналов.
- 1. Сохранение сигнала или сигнала?
- 2. Передача сигнала передачи сигнала?
- 3. Подтверждение Подтверждение с помощью ActionMailer
- 4. Как интерпретировать силу сигнала проводов сигнала
- 5. Безопасный способ обеспечения отсутствия недостающего сигнала сигнала
- 6. Как написать обработчик сигнала для сигнала сигабра?
- 7. Вывод силы сигнала сигнала RSSI на консоль
- 8. Подтверждение диалогового окна JQuery, подтверждение формы сообщения
- 9. Подтверждение подписки на новостную рассылку/подтверждение подписки
- 10. Что означает «Подтверждение подменю« Подтверждение почты »?
- 11. Подтверждение электронной почты Подтверждение с помощью ActionMailer
- 12. Обнаруживать, если есть подтверждение Подтверждение MessageBox открыто
- 13. html 5 подтверждение пароля и подтверждение пароля
- 14. рельсы - link_to: подтверждение не генерирует подтверждение данных
- 15. Сжатие сигнала
- 16. Маркировка сигнала
- 17. Ожидание сигнала
- 18. Подтверждение ограничений
- 19. Подтверждение аудиофайла
- 20. Подтверждение радиообъективов
- 21. Подтверждение пароля
- 22. Подтверждение радиоприемника
- 23. Подтверждение $ _GET
- 24. Подтверждение NSURLConnection
- 25. Подтверждение MQTT
- 26. Подтверждение RegExp
- 27. Подтверждение ошибки
- 28. Подтверждение переключателей
- 29. Включить подтверждение?
- 30. Подтверждение идей