Ru-Board.club
← Вернуться в раздел «UNIX»

» Выполнение бинарников из потомка

Автор: botcser
Дата сообщения: 23.05.2016 13:13
Для кото-то данная проблема может показаться пустяком, но я бьюсь над ней уже не меньше месяца.
Суть такова - загружаю модуль ядра, в нем при старте вызываю kern_execve на файл - успешно вызывается бинарник, отрабатывает, затем модуль дозагружается. Но мне надо параллельное выполнение, чтобы модуль не ждать завершения исполнения бинарника.

Делаю так - загружаю бинарник, в нем при старте вызывают kthread_create, следом в функции потомка вызываю kern_execve - получаю ошибку errno 2 "нет такого файла", т.е. моего бинарника. Почему? Я перепробывал много - менял флаги процесса потомка; отлаживал запуск kthread_create дна; игрался с сруктурами родителя и потомка... - безуспешно, максимум чего получалось достичь - сис вызовы возвращали 0, т.е. успех, а вызова все равно не происходил.
Автор: Alukardd
Дата сообщения: 23.05.2016 15:55
botcser
Делайте kthread_create в коде module_init функции, а от туда уже exec'айти как и что хотите.
Автор: botcser
Дата сообщения: 23.05.2016 16:23


Цитата:
Делайте kthread_create в коде module_init функции, а от туда уже exec'айти как и что хотите.


Извините, но я это же и описал в вопросе - в модуле ядра Freebsd существует только одна необходимая функция, а именно это функция static int start(struct module *module, int cmd, void *arg), в которой стоит свич на загрузку, выгрузку. Вот в самой это функции я и вызывал kthread_create и exec, как описал выше.
Автор: Alukardd
Дата сообщения: 23.05.2016 16:31
botcser
Ну так о фре только сейчас упомнять удосужились. Тут мне сказать Вам нечего.
Автор: botcser
Дата сообщения: 27.05.2016 09:37
Принцип ничем не отличается от типа ядра...зачем вставлять в ядро проверку текущей директории у процесса... (если она NULL => retrurn 2)

Страницы: 1

Предыдущая тема: В чем смысл создавать кучи дистрибьютивов с разным лишь окру


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.