我有一个以下面的方式编码的脚本。我想将它作为后台/守护程序进程运行,但是一旦我启动脚本,如果然后我关闭它从程序运行终止的终端窗口。我需要做些什么来保持程序正常运行
loop do
pid = fork do
..........
..........
..........
end
Process.detach(pid)
end
答案 0 :(得分:9)
上述所有答案都未能真正证明这样做有多容易:
# Daemonize the process and stay in the current directory
Process.daemon(true)
loop do
pid = Process.fork do
# Do something funky
end
Process.waitpid(pid)
# Reduce CPU usage
sleep(0.1)
end
答案 1 :(得分:2)
此stackoverflow问题详细解答了这个问题:Create a daemon with double-fork in Ruby
否则,有一些宝石可以帮助从代码中抽象出来,特别是你可以看看Raad(Ruby作为守护进程)https://github.com/colinsurprenant/raad,它也可以使用JRuby代码(我是Raad的作者。
答案 2 :(得分:1)
$ nohup命令>输出&