LINUX.ORG.RU

[СИ] Создание процесса из модуля.

 


0

0

Доброе утро, интересует как правильно создать процесс из ядра (а точнее из моего модуля). Наподобии функции exec прикладного уровня.

Полагаю надо использовать call_usermode_helper , но у меня не получается её корректно применить. Если не сложно, приведите пример кода, правильного применения данной функции, - запуска произвольного процесса, и получения дескрипторов, для передачи команд запущенному процессу а также чтения вывода, данного процесса.

Deleted

и еще, не понял что тебе надо, объясни на пальцах. Ты хочешь процесс TSR? или из своего процесса рунить другой и с ним общаться?

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

Он хочет из ядра запустить новый процесс. Пусть смотрит на clone() тогда чтоли.

frey ★★
()
{
    char *argv[] = {"/bin/bash", "/usr/local/bin/myscript.sh", NULL};
    char *envp[] = {"HOME=/", "PATH=/bin:/usr/bin:/sbin:/usr/sbin", NULL};
    int r = call_usermodehelper(argv[0], argv, envp, 0);
    if(r) printk("\t\tcall_usermodehelper error = %d\n", r);
}
xydo ★★
()
Ответ на: комментарий от xydo

после этого /bin/bash будет порожден от kthreadd
куда идут std{in,out,err} я не смотрел, т.к. весь вывод мне надо было перенаправлять в файл

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