Всем привет. Столкнулся с проблемой. Есть модуль ядра, который делает вызов call_usermodehelper_keys (который вызывает программу в юзермод). Вопрос, как я могу через другой модуль ядра, понять что программа, которая запустилась через call_usermodehelper_keys вызвана моим первым модулем ?
Думал что надо искать через parent, но:
Первый модуль (кот вызывает call_usermodehelper_keys ) имеет PID 6998.
Вызываемый процесс имеет PID 7003, его parent имеет PID 7002 (khelper); current->parrent->parrent->pid = 8 (khelper); current->parrent->parrent->parrent->pid = 1 (init)
Как мне определить что это процесс с PID-ом 6998 вызвал программу ?
Подскажите, есть модуль создающий поток, который должен отлавливать определенные сигналы. Но проблема в том, что поток вообще не видит сигналов, вот код:
do {
set_current_state( TASK_INTERRUPTIBLE );
schedule_timeout( 2 * HZ );
if ( signal_pending( current )) {
# никак не попаду в эту часть кода при посылки сигнала
# через kill -9 <pid>
#
# а также не ловится через вызов:
# kill_proc( thread_pid, SIGTERM, 1 );