Как выполняются команды оболочки и в каком контексте они выполняются? - PullRequest
0 голосов
/ 23 апреля 2020

На сервере приложений golang http golang использует потоки ЦП и создает go подпрограммы для ответа на запросы и ответы http.

Так что, если мое приложение получает 100 запросов в во-вторых, golang прекрасно с этим справится.

Теперь, скажем, для каждого http-запроса я делаю команду оболочки для выполнения аргумента командной строки.

Как обрабатывается этот процесс?

Я хочу понять, как управляются команды оболочки, когда они выполняются из веб-приложения, и существует ли какая-либо модель потоков, которая управляет процессом выполнения этих команд.

1 Ответ

2 голосов
/ 23 апреля 2020

Q:"Есть ли какая-нибудь модель потоков, которая управляет процессом выполнения этих команд?"

A: Нет.

Если вы вызываете оболочку (независимо от того, является ли она обработчиком Apache CGI, popen () , командной строки ... или goroutine), вы порождаете новый процесс оболочки.

Хуже того, скрипт оболочки обычно порождает множество подпроцессов оболочки OTHER .

Кроме того, порождающие * nix-оболочки в ответ на веб-запрос могут потенциально быть ОГРОМНЫМИ угроза безопасности, если у вас есть веб-сайт Inte rnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...