我有一个rake任务,在rails环境下运行mailman。守护rake任务
我想确保rake任务总是通过守护进程运行。
我的rake任务是rake incoming_mail
我将如何去daemonising呢?
我有一个rake任务,在rails环境下运行mailman。守护rake任务
我想确保rake任务总是通过守护进程运行。
我的rake任务是rake incoming_mail
我将如何去daemonising呢?
如果你在linux上,你可以考虑使用start-stop-daemon。
start-stop-daemon -S --pidfile /var/run/incoming_mail.pid -u rails_user -d /path/to/your/rails/app -b -a "rake incoming_mail"
以后要优雅地杀死你可以使用大部分的论点,但与-K替换-S过程。
与往常一样,您可以通过阅读手册页找到关于start-stop-daemon的更多信息。
这就是我需要的。谢谢 – 2012-03-04 18:07:52
在linux中,为了在后台运行进程,可以将&添加到命令结尾。所以
耙incoming_mail &
也许应该为你做的工作。
如何确保rake任务在rails应用程序启动后运行。 – 2012-03-04 15:30:28
这个解决方案只是在后台运行它,这很好,直到你想确定事情已经结束,并且工作。 – pjammer 2012-10-18 14:55:11
如果您使用Ruby 1.9+,则可以使用Process.daemon。还有一个Ruby的解决方案< 1.9:http://www.jstorimer.com/blogs/workingwithcode/7766093-daemon-processes-in-ruby
你使用的是linux还是osx?你想要这个守护进程有什么样的功能? – Maran 2012-03-04 14:38:24
'daemon stop'和'daemon start' – 2012-03-04 15:29:14