我使用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,则我的系统无法正常工作