Я пишу сценарий начальной загрузки ruby для школьного проекта, и часть этого процесса начальной загрузки состоит в том, чтобы запустить пару фоновых процессов (которые написаны и работают правильно). То, что я хотел бы сделать, это что-то вроде:Создайте фоновый процесс в Ruby
`/path/to/daemon1 &`
`/path/to/daemon2 &`
`/path/to/daemon3 &`
Однако этот блок блокируется при первом вызове для выполнения daemon1. Я видел ссылки на метод Process.spawn
, но это похоже на 1.9+, и я ограничен Ruby 1.8.
Я также пытался выполнить эти демоны из разных потоков, но я бы хотел, чтобы мой сценарий начальной загрузки мог выйти.
Итак, как я могу запустить эти фоновые процессы, чтобы мой сценарий начальной загрузки не блокировал и не мог выйти (но все еще есть демоны, работающие в фоновом режиме)?
Если вы ищете что-то большее (но все-таки на том же хосте), рассмотрите daemon_controller. http://blog.phusion.nl/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/ – Levi
Отлично! Я знал о 'fork' и' exec' (исходит из C-фона), но это был 'Process.detach()', который я отсутствовал. Благодаря! –
Это не работает, как и ожидалось, для меня, на OSX Lion и предварительно установленном рубине. – nes1983