Zastanawiam się, czy istnieje haczyk, który mógłby zostać użyty w module jądra Linux, który jest uruchamiany, gdy aplikacja/proces przestrzeni użytkownika zostanie zabity?Sygnał modułu jądra Linux w procesie przestrzeni użytkownika zabity
5
A
Odpowiedz
2
Możesz najpierw zarejestrować łańcuch powiadomień w swoim module jądra.
Wewnątrz get_signal_to_deliver
(jądro /signal.c), jakiegokolwiek procesu, który ma tylko (co jest pojęciem względnym IMHO) został zabity został jego PF_SIGNALED znacznik jest ustawiany. Tutaj można sprawdzić nazwy bieżącego procesu używając jego pole tcomm tak:
char tcomm[sizeof(current->comm)];
get_task_comm(tcomm, current);
Jeśli to jest rzeczywiście proces pod znakiem zapytania, można po prostu odpalić łańcuch powiadomień, które będą obudzić swój moduł, który ma czekali na ten łańcuch.
+0
Dziękuję! Zerknę na to! – ZedTuX
Powiązane problemy
- 1. Przeniesienie kodu przestrzeni użytkownika do przestrzeni jądra
- 2. Jak zmapować bufor jądra Linux do przestrzeni użytkownika?
- 3. Przestrzeń jądra systemu Linux i przestrzeń użytkownika
- 4. Jak korzystać z ioctl() z przestrzeni jądra w systemie Linux?
- 5. Bariery pamięci w przestrzeni użytkownika? (Linux, x86-64)
- 6. Zmiana flag ochrony pamięci użytkownika z modułu jądra
- 7. Wysyłanie struct z jądra do przestrzeni użytkownika poprzez netlink
- 8. Jak kodować moduł jądra Linux?
- 9. Kompilacja krzyżowa modułu jądra Linux dla ARM na Ubuntu x86
- 10. Moduły jądra Linux - zagrożenie bezpieczeństwa?
- 11. W jakim kontekście wątek jądra działa w systemie Linux?
- 12. Wyślij pakiet z gniazdami z modułu jądra
- 13. Jak używać jądra libcrc32c (lub tych samych funkcji) w programach przestrzeni użytkownika?
- 14. Jak wykorzystać licznik z jądra systemu Linux?
- 15. Identyfikacja modułu jądra, który utworzył wpis sysfs
- 16. ProFTPD zabity (sygnał 15) błąd - jak naprawić logrotate błąd restartu?
- 17. Wersja jądra dla celu i dla modułu
- 18. Przestrzeń użytkownika a przestrzeń jądra sterownika
- 19. „__floatsidf” niezdefiniowany ostrzeżenie przy kompilacji modułu jądra
- 20. Nie można usunąć ładowalnego modułu jądra.
- 21. Wątki Java lub C# są oparte na wątkach przestrzeni użytkownika lub wątkach jądra-przestrzeni?
- 22. Jak echo pakietu w przestrzeni jądra za pomocą hooków netfiltra?
- 23. Netlink Gniazdka w C z użyciem jądra linux
- 24. Jak znaleźć adres fizyczny zmiennej z przestrzeni użytkownika w systemie Linux?
- 25. Generowanie liczby losowej w module jądra
- 26. Jak ograniczyć dostęp dla uprzywilejowanych użytkowników na poziomie jądra Linux?
- 27. dystrybucja dla rozwoju jądra Linux
- 28. Wyświetl opcje konfiguracji jądra Linux
- 29. Jak dodać funkcję poll do kodu modułu jądra?
- 30. Słaba wydajność nagrywania w przestrzeni użytkownika dla mmap'ed pamięci fizycznej w systemie Linux
Czy dotyczy to tylko określonego procesu lub wszystkich procesów? Czy jesteś zainteresowany procesem otrzymującym pewne sygnały lub proces, który właśnie kończy się z gracją? – Tuxdude
Na ** ARM **, '#include' i 'thread_register_notifier()'. Użyj 'THREAD_NOTIFY_EXIT'. Zobacz: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/include/asm/thread_notify.h –
@Tuxdude: Jest dla wszystkich procesów i dla wszelkie sygnały. W moim przypadku mój moduł jądra zapisuje niektóre dane w oparciu o PID i musi zostać oczyszczony, gdy tylko proces się skończy. – ZedTuX