我正在使用nginx运行Rails应用程序(确切地说是Tracks)。启动的Rails进程似乎无限期地持续存在?它会停止吗?
我的共享主机上的内存分配率很低,希望能够在10分钟之后杀死Rails进程。有没有办法在nginx或Passenger中执行此操作?
与此同时,我每隔10分钟就用cron运行这个bash脚本:
PID=$(ps ax|grep [R]ails.*lytracks | cut -f2 -d" " | head -n1)
if [ $PID ]; then
kill -SIGUSR1 $PID
else
echo Not running
fi
答案 0 :(得分:3)
你可以这样做,但你不应该这样做。
Rails(在生产模式下)通常不会泄漏内存,因此重新启动该过程应该没有效果 具有合理负载的健康rails应用程序应该稳定在大约30-70MB RAM并永远保持在那里。
每10分钟重新启动一次意味着每10分钟一些用户会看到一个需要20秒才能加载的页面。或者根本无法加载。
您正在尝试使用Rails,就像使用CGI PHP脚本一样。这并不意味着这样做。
如果你有内存泄漏,你应该尝试找出导致它们的原因,然后解决它。