Я написал пример кода с 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 при прерывании клавиатуры, моя система не работает должным образом