Ruby - Как управлять внешним процессом и контролировать вывод из веб-приложения? - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть веб-приложение, которое должно взаимодействовать с уже запущенным внешним процессом.

Мне нужно иметь возможность захватывать STDOUT и перенаправлять его в браузер (например, для мониторинга пользователем). Я также хотел бы иметь возможность остановить / перезапустить процесс.

Я думал об использовании Бога для мониторинга процесса, но не вижу методов для чтения вывода из приложения rails.

Ruby 1.9.2 + Rails3.1

Спасибо

1 Ответ

1 голос
/ 07 ноября 2011

Я бы запустил процесс и записал его вывод в какой-то файл

pid = Process.spawn("cat /dev/random > process.log")

Затем вы можете прочитать этот файл и отобразить его так, как вам нравится

IO.read('process.log')

И если вы хотитечтобы убить процесс, просто используйте

Process.kill(9, pid)

. Как видите, вам нужно где-то хранить pid.

Я не уверен, как быть с внешним процессом.Возможно, вы захотите хранить pid в том же месте, когда вы запускаете процесс снаружи.

...