【问题标题】:how to stop rails server (redmine) ?如何停止 Rails 服务器(redmine)?
【发布时间】:2015-04-30 18:50:58
【问题描述】:

我已经在我的域中安装并运行 redmine。出了点问题,我无法访问 redmine 管理面板。我试图重置密码,也做了一些谷歌和更改数据库中的密码。但没有运气仍然无法登录。然后我删除了所有应用程序文件,但它仍然像以前一样运行..

这是我用来运行 redmine 服务器的代码

bundle exec ruby script/rails server webrick -e -s production

现在我正在尝试停止或重新启动,但没有任何效果。

有什么方法可以停止服务器。

提前致谢。

【问题讨论】:

  • ctrl+c 不起作用?
  • @nathanvda 它在在线 cpanel 中运行。所以 ctrl+c 不起作用。

标签: ruby-on-rails ruby redmine


【解决方案1】:

杀死进程

kill -INT $(cat tmp/pids/server.pid)

编写一个 rake 任务来做到这一点更简洁:

task :stopserver do
  pid_file = 'tmp/pids/server.pid'
  if File.file?(pid_file)
    print "Shutting down WEBrick\n"
    pid = File.read(pid_file).to_i
    Process.kill "INT", pid
  end
  File.file?(pid_file) && File.delete(pid_file)
end

【讨论】:

  • 我收到此错误“cat: tmp/pids/server.pid: No such file or directory kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec .. . 或 kill -l [sigspec] “实际上,应用程序在共享主机上运行,​​我没有 sudo auth。上次当我联系托管支持时,他们告诉我添加“-s”或类似的东西以使其在后台运行。
  • 你可以试试killall -9 rails吗?
  • 在 killall -9 rails 上获得了“rails: no process denied”
  • 确定还有 1 件事。 ps -ef | grep rails 得到什么输出?
  • -bash: kill: (21174) - 不允许操作。我想我现在应该打电话给支持团队。感谢@shivam 的帮助
【解决方案2】:

删除文件tmp/pids/server.pid),然后重启服务器。

【讨论】:

  • 我没有 sudo 访问权限来删除该文件,我正在使用共享主机。
【解决方案3】:

通常你会在没有-d 选项的情况下按下 Ctrl-C 来停止 webrick。 Ctrl-C 发出INT 信号,因此您可以尝试使用kill -INT <pid> 来停止使用-d 选项启动的webrick。

如果它没有停止,您可以尝试使用kill -9 <pid> 发送KILL 信号,这不是正确的干净关闭,但似乎是阻止它的唯一方法。这不是“最佳实践”,但这是我发现的唯一方法。

【讨论】:

  • 如何获取应用服务器的 pid?目前它在 3000 端口上运行
  • @krozero 你可以试试 lsof -i :3000
  • 它什么也不返回。这是否意味着在端口:3000 中没有任何运行?但我的应用程序仍在运行:3000
  • @krozero 您与启动 webrick 服务器的用户相同吗?您只能看到自己的进程
【解决方案4】:
$ killall -9 ruby

这个命令会杀死你系统上所有正在运行的 ruby​​ 实例,你可以再次重启你的服务器

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2014-12-15
    • 2012-02-27
    • 2017-06-14
    • 2011-10-18
    相关资源
    最近更新 更多