2015-11-23 54 views
0

我的應用程序是rails和python。旅客停止殺死孤兒過程

在rails中創建一個新線程並啓動一個執行python腳本的shell命令。 這個python腳本(父進程)會很快退出,但在它退出之前它會分叉一個子進程,而子進程在父進程退出後將成爲一個孤兒進程。

情況1:rails s -d

當蟒蛇父進程退出和Python子進程會: kill pid(./tmp/pids/server.pid)

然後子進程將確定,而不是被殺死 如果我通過軌開始應用。這就是我要的。

情況2: 如果我客運啓動應用程序: passenger start -e production -d

當蟒蛇父進程退出和Python子進程會: passenger stop; 那麼子進程會被殺死。

所以我想知道情況2,孩子的孤兒過程不能被殺死?有沒有人經歷過這個或知道如何解決它?

+0

我發現這是因爲乘客讓我的python腳本和PassengerHelperAgent同一組進程id.so當乘客停車時,它將殺死與PassengerHelperAgent 組進程ID相同的所有進程。 [參考鏈接](http://old.blog.phusion.nl/2012/09/21/the-right-way-to-deal-with-frozen-processes-on-unix/) 但我不知道如何防止乘客不殺我的劇本。 – minnie

回答

0

我有 解決我的問題重新啓動我的應用程序,而不是重新開始載客 重新啓動應用程序的命令:乘客配置重啓應用[我的應用程序的路徑]