仅重启一个特定的应用程序

仅重启一个特定的应用程序

我正在使用一个 Apache 网络服务器,上面有多个应用程序。

我需要重新启动一个特定的 ruby​​ on rails 应用程序。

在 phusion 乘客文档中,提到有两种方法可以做到这一点:

  1. 通过重新启动 Apache。
  2. 通过在 Rails 应用程序的根文件夹中创建或修改文件 tmp/restart.txt。Phusion Passenger 将在下一次请求期间自动重新启动该应用程序。

例如,要重新启动示例 MyCook 应用程序,我们在命令行中输入以下内容:

touch /webapps/mycook/tmp/restart.txt

我不想重启整个网络服务器,只想重启我的 rails 应用。我的 rails 应用文件夹名为 sub_interface。

我在 tmp 文件夹中创建了一个名为 restart.txt 的空文本文件,并运行了该命令

touch htdocs/sub_interface/tmp/restart.txt

什么都没发生。该文件是空的。

如何仅重新启动我的 Rails 应用程序而不重新启动整个 Web 服务器?

答案1

什么都没发生。该文件是空的。

这是您所期望的 - ./tmp/restart.txt 处有一个空文件,在您尝试重新加载页面之前没有其他更改。这将在您下次加载时重新启动应用程序,但是,如果您启用了缓存(页面、操作或片段),您可能看不到刷新的内容。

为了测试您是否在查看正确的文件夹,请 cd 到 sub_interface 并执行以下操作:

touch ./public/test.txt

然后访问 mywebsite.com/test.txt,并检查是否出现空白页(而不是 404)。

然后测试网站是否确实正在重新启动,通过添加以下操作来更改现有操作:

redirect_to :root and return 

在开始时再次触摸./tmp/restart.txt - 如果您访问操作网页(例如 mywebsite.com/users)并且它重定向,则表明重启已成功。

答案2

在发出 touch 命令之前无需创建文件。‘touch’会创建一个空文件,或者如果文件存在,它会更新文件的更改日期。

您确定 httpd.conf 正在加载 htdocs/sub_interface 上的应用程序吗?如果是这样,您确定在创建文件 tmp/restart.txt 时,乘客没有重新启动应用程序吗?

相关内容