【发布时间】:2018-03-27 04:07:36
【问题描述】:
我想使用一个使用 xvfb(虚拟 X 服务器)的节点脚本。我有这个命令:
xvfb-run -a --server-args="-screen 0 1366x768x24" node something.js
在终端中工作。但是当我尝试将其重写为 Elixir 时:
System.cmd "xvfb-run", ["-a", "--server-args=\"-screen 0
1366x768x24\"", "node", "something.js"]
然后我有错误说我需要 xvfb。这与我只运行 node something.js 时遇到的错误相同。
我试过Porcelain:
Porcelain.exec "xvfb-run", ["-a", "--server-args=\"-screen 0
1366x768x24\"", "node", "something.js"]
但它有同样的问题。也许我没有正确使用它?
我还尝试了一个erlang的os lib:
"xvfb-run -a --server-args=\"-screen 0 1366x768x24\" node something.js"
|> String.to_charlist
|> :os.cmd
|> to_string
效果更好,它没有 xvfb 问题,但它卡在脚本中间而没有任何警告。该命令没有终止,节点脚本只是没有进一步。
我知道我可以为此编写小的 .sh 脚本。但是用普通的 Elixir 来完成这项工作会很好
Ubuntu 12.04
【问题讨论】:
-
尝试从第二个参数中同时删除
\"(即设为"--server-args=-screen 0 1366x768x24")。当使用这样的参数列表调用命令时,它们不应该在那里。 -
谢谢,我把它改成了
"--server-args=-screen\ 0\ 1366x768x24",现在可以了
标签: elixir