大家
我尝试通过调用函数 call_usermodehelper
从 Linux 内核模块以 root 权限调用 xterm。我的代码如下:
char* envp[] = {"HOME=/", NULL};
char* argv[] = {"/usr/bin/xterm", NULL};
int ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
printk(KERN_INFO "retval: %d\n", ret);
结果显示ret为256,我认为命令执行成功。但是,我没有看到 xterm 窗口弹出。
谁能帮我解决这个问题?或者还有其他方法可以实现我想要的吗?
最佳答案
我相信您缺少一些必要的环境变量。试试这个:
char* envp[] = {"HOME=/", "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL};
char* argv[] = {"/usr/bin/xterm", NULL};
int ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
printk(KERN_INFO "retval: %d\n", ret);
关于linux - 通过 call_usermodehelper 调用 xterm 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142231/