LINUX.ORG.RU

Идентификация процесса ядром


0

0

Всем привет. Столкнулся с проблемой. Есть модуль ядра, который делает вызов 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 вызвал программу ?


Сказать второму модулю от лица первого модуля, что он запустил такой-то процесс?

mv ★★★★★
()
Ответ на: комментарий от mv

> Сказать второму модулю от лица первого модуля, что он запустил такой-то процесс? mv (*) (21.04.2009 12:32:11)

Ну да, а лучше вторым модулем вызывать эту программу)) Нет, к сожалению этот вариант не подойдет(

Shockk
() автор топика

Имхо никак. Писать свою реализацию запуска юзерспейсного приложения или писать патч для kmod.
The application is started asynchronously if wait is not set, and runs as a child of keventd. (ie. it runs with full root capabilities).

monika
()
Ответ на: комментарий от monika

>Писать свою реализацию запуска юзерспейсного приложения

Это кстати совсем несложно сделать, единственно нужно наверно будет создавать процесс пространства ядра.

monika
()

> Первый модуль (кот вызывает call_usermodehelper_keys ) имеет PID 6998

pid то этот не статичен
т. к код модуля может выполняться в контексте любого процесса

rei3er
()

а нельзя процесс каким-нить атрибутом пометить? Ещё можно создать в /proc или /sys или /config файл с пид-ом. Или символьное устройство в /dev для этих целей.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Мда, видится два выхода:
- проверять у процесса current->parent->comm и если там khelper то "верим" что это наш другой lkm
- как выше было предложено "Писать свою реализацию запуска юзерспейсного приложения"

Shockk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.