Запуск процесса изнутри контроллера в рельсах - PullRequest
0 голосов
/ 30 мая 2018

Я хочу запустить процесс изнутри контроллера.Я попробовал обычный

pid = fork do
 code
end

Process.detach(pid)

Но ничего не происходит.Когда я пытаюсь использовать eval (code) в блоке fork, код запускается, но это фактический сервер rails, на котором он работает.Это означает, что когда я завершаю процесс, я также выключаю весь сервер.

До этого у меня был какой-то код, который я потерял, и он почти уверен, что он использовал exec или eval или что-то подобное, что создалопроцесс (и, следовательно, вернул pid, чтобы иметь возможность убить его позже), и я помню, как проверял ps, что он был запущен чем-то из rails, но не фактическим целым сервером.

Почему вилка не блокирует достаточно для ее работы?Как это сделать?И для целей тестирования и реальной реализации, как я могу заставить его работать полностью независимо от сервера rails?

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете выполнить команду оболочки внутри вашего контроллера Rails, используя exec.

Я надеюсь, что вы ищете то же самое.Процесс, который вы запускаете в системе, будет полностью независим от сервера Rails и будет виден в команде ps, если он запущен при нажатии команды.

Документация: http://ruby -doc.org / ядро-2.5.1 / Kernel.html # метод-я-Exec

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