Daemoninsing a rake task

非 Y 不嫁゛ 提交于 2019-12-18 04:17:12

问题


I have a rake task which runs mailman under the rails environment.

I'd like to ensure that rake task is always running via a daemon.

My rake task is rake incoming_mail

How would I go about daemonising that?


回答1:


If you are on linux you could consider using 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"

To later gracefully kill the process you can use most of the arguments but replace -S with -K.

As always you can find more information on start-stop-daemon by reading the man pages.




回答2:


In linux in order to run a process in background, you can add & to the end of command. So

rake incoming_mail &

should probably do the jobs for you.




回答3:


If you use Ruby 1.9+, you could use Process.daemon. There's also a solution for Ruby < 1.9: http://www.jstorimer.com/blogs/workingwithcode/7766093-daemon-processes-in-ruby




回答4:


If it's a docker image then surely it must be linux so,

rake incoming_mail &

should do the job by login into the pod and running rake task

Apart from this, put

Rails.logger.info in your code so the logs will be pushed to application log file OR

GCloud Stackdriver or any logging framework.



来源:https://stackoverflow.com/questions/9555715/daemoninsing-a-rake-task

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!