在 Ubuntu 桌面上,我(以 root 身份登录)如何调用 gnome-terminal 在其他用户会话内打开终端窗口并执行一些命令/脚本。
目的是能够在其他用户终端上打开重负载进程并保持其开放,以便用户与其进行交互。
“导出 DISPLAY”方法对我不起作用。还有其他方法可以解决这个问题吗?
答案1
尝试同时设置 DISPLAY 和 XAUTHORITY。您必须拥有所有者 .Xauthority 文件的权限,并且知道他使用哪种显示器。
export DISPLAY=':0'
export XAUTHORITY=/home/<owner_of_display>/.Xauthority
更改 :0 以纠正错误,但通常只有一个用户时它是 0。如果您具有 root 访问权限,则此方法应该有效:
root@host:~# sudo su - <username>
username@host:~$ export DISPLAY=':0'
username@host:~$ export XAUTHORITY=$HOME/.Xauthority
username@host:~$ gnome-terminal -x sh -c '<command>; exec bash'
最后一行是关于启动新的 gnome-terminal 并执行您想要的命令。对我来说有几个新东西,所以可能不会那么简单。