我已经使用Distillery发布了一个版本,所以我可以用./bin/app start
启动它,现在我正试图用elixir启动它,就像这样:
path = "/Users/user/app/0.0.1/bin/"
System.cmd("./app", ["start"], cd: path)
但不幸的是,得到:enoent
错误。我想这是因为./app
不是真正的命令,而是文件。所以,我的问题是,是否可以使其与System.cmd
一起使用?
我尝试使用Enum.join([executable, "start"], " ") |> String.to_char_list |> :os.cmd
,但如果发生错误,此方法不会提供错误。所以我更愿意将其存档,但使用System.cmd
。
任何建议表示赞赏,谢谢!
答案 0 :(得分:1)
System.cmd/3
中的目录中,则 PATH
需要可执行文件的绝对路径:
除非给出绝对路径,否则
command
应该是PATH中可用的可执行文件。
您的应用程序的目录很可能不在PATH中,因此您可以将绝对路径传递给应用程序,如下所示:
System.cmd(Path.join(path, "app"), ["start"], cd: path)