Ответ 1
Ответ @TanzeebKhalili работает, но вы могли бы рассмотреть Kernel.spawn(), который не ожидает возврата процесса:
pid = spawn("./test.sh")
Process.detach(pid)
Обратите внимание, что в соответствии с документацией, независимо от того, используете ли вы spawn()
или вручную fork()
и system()
, вы должны получить PID и либо Process.detach()
, либо Process.wait()
перед выходом.
Что касается перенаправления стандартной ошибки и вывода, это легко с spawn()
:
pid = spawn("./test.sh", :out => "test.out", :err => "test.err")
Process.detach(pid)