在Elixir中使用xvfb-run shell命令

时间:2018-03-25 21:27:02

标签: elixir

我想使用使用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

1 个答案:

答案 0 :(得分:1)

"出现问题。我已经改变了论点

"--server-args=\"-screen 0 1366x768x24\""

"--server-args=-screen\ 0\ 1366x768x24"

现在可行了