У меня есть небольшой сценарий HTTP-сервера, который я написал с использованием eventmachine, который должен вызывать внешние сценарии / команды и делать это с помощью обратных символов (``
). Однако при обработке запросов, которые не запускают код с обратным каналом, все в порядке, но как только мой код EM выполняет какой-либо внешний скрипт с обратным каналом, он перестает обслуживать запросы и вообще прекращает выполнение.
Я заметил, что eventmachine, кажется, чувствителен к подпроцессам и / или потокам, и, похоже, для этого есть метод popen
, но источник EM предупреждает, что этот метод не работает под Windows. Многие машины, на которых запущен этот скрипт, работают под управлением Windows, поэтому я не могу использовать popen
.
Мне здесь не повезло? Есть ли безопасный способ запустить внешнюю команду из сценария eventmachine под Windows? Можно ли как-нибудь запустить некоторые команды для внешнего запуска, не блокируя выполнение EM?
edit: виновник, который, похоже, испортит EM больше всего, это мое использование команды Windows start
, например: start java myclass
. Причина, по которой я использую start, заключается в том, что я хочу, чтобы эти внешние сценарии запускались и продолжали работать после обслуживания запроса EM