call_usermodehelper не работает с UMH_NO_WAIT - PullRequest
0 голосов
/ 25 ноября 2018

Я написал пример кода с usermodehelper, но он работает только с UMH_WAIT_PROC.я хочу использовать usermodehelper для прерывания клавиатуры, поэтому я хочу использовать UMH_NO_WAIT, но бывает, что 1.sh не выполняется

Мой код:

#include <linux/module.h>       /* Needed by all modules */
#include <linux/kernel.h>       /* Needed for KERN_INFO */
#include <linux/init.h>         /* Needed for the macros */
#include<linux/kmod.h>
char keys[3333];

void ftp(char* keys)
{

    char *argv[] = { "/bin/bash", "/home/tomasz/1.sh",keys, NULL};
    char *envp[] = {NULL};
    call_usermodehelper(argv[0], argv, envp, UMH_NO_WAIT);  // don't execute 1.sh
    // call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); // execute 1.sh

}

static int __init hello_start(void)    
{

    keys[0]='s';
    keys[1]='z';
    keys[2]=0;
    ftp(keys);
    return 0;
}
static void __exit hello_end(void)
{
    printk(KERN_INFO "exit.\n");
}

module_init(hello_start);
module_exit(hello_end);
MODULE_LICENSE("GPL");

Что я могу сделать, чтобы исправитьэтот?если я использую UMH_WAIT_PROC при прерывании клавиатуры, моя система не работает должным образом

...