我想从Elixir / Erlang进行系统调用。 我知道Erlang有OS module而Elixir有System module但是我无法从这些链接中弄清楚我应该如何使用sudo。 我试过运行这个并收到错误:
> System.cmd("sudo su", [])
** (ErlangError) erlang error: :enoent
(elixir) lib/system.ex:450: System.cmd("sudo su", [], [])
关于如何使这项工作的任何想法?
答案 0 :(得分:0)
ENOENT是POSIX代表“没有这样的文件或目录”。它正在寻找“sudo su”命令而没有找到它。
尝试使用System.cmd("sudo", ["su"], [])
,这将使用单个参数“su”调用“sudo”命令。
答案 1 :(得分:0)
我似乎无法在System.cmd
内使用sudo。它给出了以下错误:
sudo: no tty present and no askpass program specified
我猜这意味着必须存在与输入密码相关的某个程序。但是,我设法做的是在调用sudo
时使用iex
- > sudo iex
现在所有需要sudo
的命令似乎都有效。
Erlang文档似乎也未对此进行任何说明。