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

Ubuntu shell命令是如何执行的,它们在什么上下文中运行?,ubuntu,go,Ubuntu,Go,在golang http应用服务器中,golang有CPU线程可供使用,它创建go例程以响应http请求和响应 因此,如果我的应用程序每秒收到100个请求,golang会处理得很好 现在,假设对于每个http请求,我将生成一个shell命令来执行一个命令行参数 这个过程是如何处理的 我想了解从web应用程序执行shell命令时如何管理这些命令,以及是否存在一些线程模型来管理这些命令的执行过程。Q:“是否存在一些线程模型来管理这些命令的执行过程?” A:否 如果生成一个shell(不管它是apac

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

因此,如果我的应用程序每秒收到100个请求,golang会处理得很好

现在,假设对于每个http请求,我将生成一个shell命令来执行一个命令行参数

这个过程是如何处理的


我想了解从web应用程序执行shell命令时如何管理这些命令,以及是否存在一些线程模型来管理这些命令的执行过程。

Q:“是否存在一些线程模型来管理这些命令的执行过程?”

A:

如果生成一个shell(不管它是apachecgi处理程序、命令行还是goroutine),则生成一个新的shell进程

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


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

“它创建了响应http请求和响应的通道”否,
net/http
为每个请求生成一个goroutine,而不是一个通道。Shell命令的执行方式与任何其他应用程序(Go或其他应用程序、web或其他应用程序)中的执行方式相同:一个新进程被分叉。Go调度器不参与;新进程有自己的线程,由它自己来管理。对不起,我的意思是说go routine no channel:)“我想了解从web应用程序执行shell命令时如何管理它们”它们的管理方式与非web应用程序中的管理方式相同:新的OS进程。这里没什么可看的。我知道这是个坏主意,只是试着去了解封面下发生了什么。