Запустите отдельный процесс, который, вероятно, проще всего сделать с system
, добавив nohup и добавив '&' в конце команды, которую вы передаете. (Убедитесь, что команда является только одним строковым аргументом, а не списком аргументов.)
Есть несколько причин, по которым вы хотите сделать это, а не, скажем, пытаться использовать потоки:
Потоки Ruby могут быть немного сложными, когда дело доходит до ввода / вывода; Вы должны позаботиться о том, чтобы некоторые вещи, которые вы делаете, не приводили к блокировке всего процесса.
Если вы запускаете программу с другим именем, ее легко идентифицировать в «ps», так что вы не случайно думаете, что это бэк-энд FastCGI или что-то в этом роде, и убиваете его. 1013 *
Действительно, процесс, который вы запускаете, должен быть «деамонизирован», см. Класс Daemonize .