5
我想知道在用戶空間應用程序/進程被終止時是否可以在被激發的Linux內核模塊中使用一個鉤子?關於用戶空間進程死亡的Linux內核模塊信號
我想知道在用戶空間應用程序/進程被終止時是否可以在被激發的Linux內核模塊中使用一個鉤子?關於用戶空間進程死亡的Linux內核模塊信號
您可以先在您的內核模塊中註冊一個通知程序鏈。
內get_signal_to_deliver
(內核/ signal.c),其中有只是(這是一個相對的概念恕我直言)有其PF_SIGNALED標誌被設置被殺死任何進程。在這裏,你可以用它TCOMM場像這樣檢查的當前進程的名稱:
char tcomm[sizeof(current->comm)];
get_task_comm(tcomm, current);
如果它確實是受到質疑的過程中,你可以只解僱通知鏈,這將喚醒你的模塊,它具有一直在那條鏈上等待。
謝謝!我會看看這個! – ZedTuX 2014-01-17 14:54:03
它僅適用於特定過程還是所有過程?您是否對接受某些信號的過程感興趣,或者剛剛退出的過程是否有興趣? – Tuxdude 2013-03-02 19:25:43
On ** ARM **,'#include'和'thread_register_notifier()'。使用'THREAD_NOTIFY_EXIT'。請參閱:https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/include/asm/thread_notify.h –
2013-03-02 20:13:21
@Tuxdude:適用於所有進程和任何信號。在我的情況下,我的內核模塊正在保存一些基於PID的數據,並且一旦進程死掉就必須清理它。 – ZedTuX 2013-03-03 11:10:55