2012-03-04 123 views
5

我有一個rake任務,在rails環境下運行mailman。守護rake任務

我想確保rake任務總是通過守護進程運行。

我的rake任務是rake incoming_mail

我將如何去daemonising呢?

+0

你使用的是linux還是osx?你想要這個守護進程有什麼樣的功能? – Maran 2012-03-04 14:38:24

+0

'daemon stop'和'daemon start' – 2012-03-04 15:29:14

回答

3

如果你在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的更多信息。

+0

這就是我需要的。謝謝 – 2012-03-04 18:07:52

4

在linux中,爲了在後臺運行進程,可以將&添加到命令結尾。所以

耙incoming_mail &

也許應該爲你做的工作。

+0

如何確保rake任務在rails應用程序啓動後運行。 – 2012-03-04 15:30:28

+1

這個解決方案只是在後臺運行它,這很好,直到你想確定事情已經結束,並且工作。 – pjammer 2012-10-18 14:55:11