Мне просто интересно, есть ли способ убить программу пользовательского пространства из модуля ядра. Я знаю, что команда kill не будет работать, так как это системный вызов из пользовательского пространства в пространство ядра ,Убивать программу пользовательского пространства из модуля ядра
1
A
ответ
3
Этот код будет убить процесс вызова ...
int signum = SIGKILL;
task = current;
struct siginfo info;
memset(&info, 0, sizeof(struct siginfo));
info.si_signo = signum;
int ret = send_sig_info(signum, &info, task);
if (ret < 0) {
printk(KERN_INFO "error sending signal\n");
}
Вы можете увидеть, как ООМ убийца делает это здесь ...
http://lxr.free-electrons.com/source/mm/oom_kill.c?v=3.16#L516
0
Если вы знаете, что системный вызов может быть используемый пользователями для доставки сигналов, почему вы не можете проверить, как это реализовано? Что еще более важно, почему, по-вашему, вам нужно отправить сигнал в первую очередь? Как вы определяете, что сигнализировать в первую очередь?
Является ли это еще одним ужасным назначением колледжа?
Смежные вопросы
- 1. Включить отладку модуля ядра из пользовательского пространства
- 2. Модуль ядра, периодически вызывающий программу пользовательского пространства
- 3. Вызов функции пользовательского пространства из модуля ядра Linux
- 4. Уведомлять прерывание gpio для пользовательского пространства из модуля ядра
- 5. Каков наилучший способ связи модуля ядра с программой пользовательского пространства?
- 6. Включая коды ioctl в программу пользовательского пространства
- 7. Чтение содержимого страницы пользовательского пространства из ядра
- 8. Драйвер ядра и mmap из пользовательского пространства
- 9. Ошибка модуля ядра Linux в процессе пользовательского пространства
- 10. IOCTL из пространства ядра
- 11. Linux: Как связь с модулем ядра из пользовательского пространства произойдет
- 12. Открытие файла из пользовательского пространства с модулем Linux ядра
- 13. Доступ GPIO из пространства ядра
- 14. запуск пользовательского пространства с помощью ядра
- 15. Как вызвать функции драйвера ядра Linux из программы пользовательского пространства?
- 16. Отправить пакет с сокетами из модуля ядра
- 17. пространства ядра и пользовательского пространства макет в таблицу страниц
- 18. Как написать функцию пространства ядра, которая вызывается функцией пользовательского пространства?
- 19. идентификация пространства ядра и идентификатора пространства пользователя
- 20. Как получить доступ к памяти пользовательского пространства из ядра Linux?
- 21. ядра Linux: использование регулятора потребитель из пользовательского пространства
- 22. проблема в распределении памяти ядра malloc() из пользовательского пространства?
- 23. Как получить доступ к пространству ядра из пользовательского пространства?
- 24. Linux Kernel - остановка запущенного таймера ядра из пользовательского пространства
- 25. Доступ к переменной в пространстве ядра из пространства пользовательского уровня
- 26. Как вставить модуль ядра из приложения для пользовательского пространства?
- 27. потерял некоторый параметр из пользовательского пространства в пространстве ядра
- 28. Как запустить программу пользовательского режима из режима ядра в windows
- 29. Тестирование модуля ядра
- 30. Как ядро уведомляет программу пользовательского пространства о возникновении прерывания
http://www.linuxquestions.org/questions/linux-kernel-70/how-to-send-a-signal-from-a-module-to-a-process-803485/ – vestlen