登录
首页 >  Golang >  Go问答

shell 命令是如何执行的以及它们在什么上下文中运行?

来源:stackoverflow

时间:2024-03-17 12:00:29 300浏览 收藏

在 Golang HTTP 服务器中,应用程序使用 Go 例程处理 HTTP 请求。当需要执行 shell 命令时,应用程序将创建一个新的 shell 进程,这会带来安全风险和性能开销。因此,在面向 Internet 的网站中,从 Web 应用程序执行 shell 命令应谨慎考虑。

问题内容

在 golang http 应用服务器中,golang 有 CPU 线程可供使用,它创建 go 例程来响应 http 请求和响应。

因此,如果我的应用程序每秒收到 100 个请求,golang 将很好地处理这个问题。

现在,对于每个 http 请求,我正在创建一个 shell 命令来执行命令行参数。

这个过程是如何处理的?

我想了解从 Web 应用程序执行 shell 命令时如何管理它们,以及是否有某种线程模型来管理这些命令的执行过程。


解决方案


问:“是否有某种线程模型来管理这些命令的执行过程?”

答:没有。

如果您生成一个 shell(无论它是 Apache CGI 处理程序、popen()、命令行...还是 goroutine),您就会生成一个新的 shell 进程。

更糟糕的是,shell 脚本通常会生成许多其他 shell 子进程。

此外,如果您有一个面向 Internet 的网站,则响应 Web 请求而生成 *nix shell 可能会带来巨大的安全风险。

终于介绍完啦!小伙伴们,这篇关于《shell 命令是如何执行的以及它们在什么上下文中运行?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>