由于 xterm,单个应用程序的 startx 失败

由于 xterm,单个应用程序的 startx 失败

我正在尝试使用 Raspberry Pi 上的 startx 直接运行 Epiphany。这个想法是在指向网站的 kiosk 模式下运行 Epiphany。我想要运行的命令是:

startx epiphany -a --profile ~/.profile google.com

失败了。是的,我已经在正常的 x 会话中测试了该命令,它运行正常。错误如下:

/usr/bin/xterm: bad command line option "-a"

所以我开始简化这个问题。下面的方法有效,我得到了一个浏览器:

startx epiphany

但如果我尝试向 epiphany 添加任何参数,xorg 就会无法启动。例如,以下命令会失败:

startx epiphany google.com

错误略有不同,但几乎相同:

/usr/bin/xterm: Explicit shell already was /usr/bin/epiphany
/usr/bin/xterm: bad command line option "google.com"

上述内容随后是 xterm 的正确用法,就好像我以 google.com 作为参数启动 xterm 而不是 epiphany。

就好像 xterm 以某种方式将 epiphany 参数读取为其自己的参数。我尝试在 epiphany 命令周围使用双引号和单引号,但 xterm 仍然会抛出相同的错误。

我在这里遗漏了什么?

答案1

根据 xinit 的手册页(startx 使用与其相同的参数),

客户端程序名称和服务器程序名称都必须以斜杠 (/) 或句点 (.) 开头。否则,它们将被视为参数,并附加到各自的启动行。这样就可以添加参数(例如,前景色和背景色),而无需重新输入整个命令行。

因此startx epiphanystartx epiphany -a --profile ~/.profile google.com实际上将“epiphany”作为第一个参数传递给默认客户端(在本例中为 xterm)。要将 Epiphany 作为客户端运行(从而能够为 Epiphany 指定参数),您需要将整个路径传递给 startx:

startx /usr/bin/epiphany [arguments to epiphany]

由于 Epiphany 可能位于其他地方(例如,在我的 Fedora 22 机器上它位于 /bin/epiphany),您可能需要使用:

startx `which epiphany` [arguments to epiphany]

相关内容