linux - 通过 call_usermodehelper 调用 xterm 提示符

标签 linux kernel xterm

大家

我尝试通过调用函数 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/

相关文章:

linux - 如何打开 xterm -e 'command' 并保留已声明的函数?

linux - 更改 Jenkins 构建工件文件所有权

linux-kernel - Gentoo 没有制定目标 'olddefconfig' 的规则

linux - Linux 中处理的 AVRCP 关键事件

linux - 如何在 Linux 内核中创建新进程?

c++ - xterm:无法 execvp:没有文件或目录

vim - 使用 macOS Terminal.app 进入插入模式时,如何在 Vim 中更改光标形状?

linux - 开关不工作

java - Java Media Framework 安装失败

c - Linux 内核库