У меня длительный процесс, и он мне нужен для запуска другого процесса (он тоже будет работать долго). Мне нужно только запустить его, а потом полностью забыть об этом.
Мне удалось сделать то, что мне было нужно, выкопав некоторый код из книги по программированию на Ruby, но я бы хотел найти лучший / правильный путь и понять, что происходит. Вот что я получил изначально:
exec("whatever --take-very-long") if fork.nil?
Process.detach($$)
Так вот, или как мне еще это сделать?
После проверки ответов ниже я получил этот код, который, кажется, имеет больше смысла:
(pid = fork) ? Process.detach(pid) : exec("foo")
Буду признателен за объяснение того, как работает fork
. [получил это уже]
Был ли отрыв $$
верно? Я не знаю, почему это работает, и я бы очень хотел, чтобы лучше понять ситуацию.