我正在尝试使用 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 epiphany
和startx 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]