微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

os.execute是否阻塞lua中的线程?

在我的Nginx + lua应用程序操作系统执行命令行类似os.execute("ls 2>&1 | tee a.txt")我想知道它是否阻止主应用程序? 我想使用命令“执行和忘记”的情况。 如果它阻止如何修复它,并在后台线程中执行一个简单的线?

GSL-Shell:我可以添加用于扩展Lua的预编译库吗?

如何在同一个linux系统上有不同的lua版本

如何find一个包含在lua应用程序中的库

configurationNginx使用key从redis获取url,并将proxy的url到其他服务器

为什么主机系统上的lua比在linux vm中慢?

os.execute()会阻塞执行你正在运行的命令的时间,并且由于你产生了一些输出,使用io.popen不会帮助你,因为你需要从管道读取(否则过程将会仍然阻止在某一点)。

更好的方法可能是在后台运行进程 : os.execute("ls >a.txt 2>&1 &") 。 重定向>和2>顺序重要,最后在后台运行命令,解除os.execute 。

os.execute()相当于C中的system() ,因此它阻塞了线程。

如果您不想阻止,请改用io.popen 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐