ruby-on-rails - 在 Rails 进程结束后终止它

标签 ruby-on-rails ruby nginx ram

我正在使用 nginx 运行一个 Rails 应用程序(确切地说是 Tracks)。启动的 Rails 进程似乎会无限期地持续下去?它应该停止吗?

我的共享主机上的 RAM 分配很低,我希望能够在 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

最佳答案

你可以这样做,但你不应该这样做。

Rails(在生产模式下)通常不会泄漏内存,因此重新启动进程应该没有影响。
具有合理负载的健康 Rails 应用程序应该稳定在大约 30-70MB RAM 并永远保持在那里。

每 10 分钟重新启动一次意味着每隔 10 分钟您的一些用户就会看到一个需要 20 秒加载的页面。或者根本无法加载。
您正在尝试像使用 CGI PHP 脚本一样使用 Rails。这不是为了那样做。

如果您有内存泄漏,您应该尝试找出导致它们的原因,然后修复它。

关于ruby-on-rails - 在 Rails 进程结束后终止它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769418/

相关文章:

ruby-on-rails - 在 Windows 中设置 Curb

ruby-on-rails - ActiveRecord NoMethodError : undefined method `association' for nil:NilClass

ruby - 如何阻止程序自行退出?

ssl - 如果 header 存在,Nginx 设置 proxy_set_header

ruby-on-rails - rails : Is it possible to select has_many association column id as array

ruby-on-rails - 在 AngularJS 中管理多对多关系

ruby-on-rails - 输出到终端而不是 html 文档

ruby-on-rails - ruby中的异步http请求

python - Django + uwsgi + nginx 。导入错误 : No module named py

regex - Nginx request_uri没有参数