我希望能够从Lua脚本中并行执行后台进程。
例如:
例如:
a = io.popen("deploy.exp" .. ip1):read("*a")
b = io.popen("deploy.exp" .. ip2):read("*a")
其中a、b是持续运行的进程。当我按照上述方式操作时,只有在a完成后,b才会运行。deploy.exp脚本是一个expect脚本,用于ssh到几个服务器并执行一些命令。然后我需要从a和b中获取一些文本。您有什么想法吗?我尝试使用ExtensionProposal API。但是当我尝试时,出现了一个错误消息,指出:“* glibc detected free(): invalid next size (fast): 0x08aa2300 ** abort”。
相关代码如下:
for k,v in pairs(single) do
command = k .. " 1 " .. table.concat(v, " ")
local out = io.pipe()
local pro = assert(os.spawn("./spaw.exp " .. command,{
stdout = out,
}))
if not proc then error("Failed to aprogrinate! "..tostring(err)) end
print(string.rep("#", 50))
local exitcode = proc:wait()
end
有人对此有经验(或建议/应该去哪里寻找)吗?或者给我一个样例?谢谢。
顺便说一句:我尝试了luaposix,但是我找不到任何使用posix.fork()的样例。有人能分享一下吗?谢谢。