Как я знаю, каждый процесс, выполняющийся в bash, является дочерним процессом этого bash. Например, если я запускаю бесконечный цикл в bash, ОС будет fork bash и создать новый дочерний процесс для запуска этого цикла. Тогда, если я нажму ctrl + c, дочерний процесс будет убит. Теперь я смущен тем, кто является отправителем сигнала, так как я думаю, что процесс родительского bash ждет сейчас. Является ли он сам процессом или ядром? Насколько я знаю, действия клавиатуры могут вызвать серьезные перерывы, которые могут обрабатываться только ядром, или же дочерний процесс переходит в состояние ядра при нажатии клавиши?Как передается сигнал при нажатии ctrl + c
ответ
Ваше понимание неверное.
Это не «окс-форкинг-баш», это просто удар, потому что это просто тривиальный случай, который вы имели ввиду в первую очередь.
В любом случае драйвер tty «отправляет» сигнал на передний план (здесь: bash), и указанный процесс может поймать его и действовать на него, например. разбить петлю.
bash и forked loop - это два процесса, но кто теперь является fg, который вы сказали ? –
, произнеся «os forks bash», я имею в виду, что fork - системный вызов, можете ли вы порекомендовать мне некоторые статьи или книги, чтобы понять, какие детали здесь? –
Я сказал для простого, пока это правда; делать эхо дерьмо; сделано, в первую очередь не выполняется разметка, и вы можете легко проверить, запускаете ли вы процесс bash в strace. К сожалению, у меня нет хорошего ресурса для вас, скорее всего, вам понадобится продвинутое программирование в среде UNIX от Stevens. –
- 1. TextBox: как отключить звуковой сигнал при нажатии Ctrl + a?
- 2. Сигнал Ctrl + C через Java?
- 3. Сервер Kafka сжимается при нажатии CTRL + c
- 4. Отменить отмену нити при нажатии ctrl + c
- 5. Получение сообщения Ctrl + R при нажатии Ctrl + C в PreTranslateMessage
- 6. Почему Linux всегда выводит «^ C» при нажатии Ctrl + C?
- 7. Как сохранить мою программу на C при нажатии CTRL-C?
- 8. Как избежать утечки памяти при нажатии ctrl + c под linux?
- 9. Как мне испускать сигнал при нажатии TableViewColumn?
- 10. Как получить простой сигнал при нажатии кнопки?
- 11. Функция R, вызываемая при нажатии Ctrl + D
- 12. Java: предотвратить звуковой сигнал при нажатии клавиши
- 13. Как отправить Ctrl + C сигнал процессу в JAVA
- 14. как всегда обрабатывать сигнал ctrl c после 10 секунд
- 15. как обрабатывать сигнал Ctrl + Z в мини-оболочке. C
- 16. Сделать BusyIndicator запуститься при нажатии кнопки (сигнал на C++)
- 17. Disbale DataGridViewRow unselect при нажатии CTRL
- 18. Выполнить Ctrl + D при нажатии кнопки
- 19. Почему срабатывает TEdit.OnChange при нажатии Ctrl + A?
- 20. Звуковой сигнал при нажатии клавиш в форме
- 21. Значение сдвига при нажатии только клавиши CTRL?
- 22. триггером Ctrl + s при нажатии кнопки
- 23. Сигнал Sigabrat при нажатии кнопки в раскадровке
- 24. Тема 1: сигнал SIGABRT при нажатии кнопки
- 25. Как реализовать действие Ctrl + C в C#?
- 26. Какой сигнал передается дочернему процессу при завершении основной программы?
- 27. Какой сигнал клавиатуры, кроме Ctrl-C, можно поймать?
- 28. Применение Сигнал CTRL-C работает только один раз
- 29. Игнорирование ctrl-c
- 30. jQuery - Как вызвать функцию при нажатии Ctrl + S?
У меня был ответ здесь http://stackoverflow.com/questions/9853921/installing-sigtstp-foreground-process/9854819#9854819 –