当我通过 Ctrl+Z 停止 rails 服务器时,之后需要进行繁琐的工作才能将其启动并 运行。可以有一个脚本来为我解决这个问题吗?

When I stop a rails server via Ctrl+Z there is tedious work afterwards to get it up and running. Could there be a script to solve that for me?

脚本可以很容易地添加到我的别名中。bash_profile 这样我只需要点击 Ctrl + Z 和一些别名并再次启动服务器而无需搜索在我的文本编辑器上手动为 tmp/pids/server.pid 停止该进程,然后删除端口 ID,然后再次启动服务器。每次我需要强制停止时。

已编辑:

根据一些评论,我首先要澄清为什么我会遇到这种情况: 当我想停止服务器时我使用 Ctrl+Z 但我在 binding.pry 中并且不希望进程的其余部分为 运行 因为它可能导致用无用数据填充数据库稍后我将不得不删除它。如果您尝试使用经典的 Ctrl+C 停止绑定内部的服​​务器,它将永远不会停止,并且点击 exit 将导致进程继续。

选项 A

根据 Clara 的评论,一种更简单、更简洁的停止方法是键入 !!!。这将为您提供一个 SystemExit (exit),您可以从中停止使用经典的 Ctrl + C 瞧!

选项 B

如果您仍然想要该脚本,根据这些问题 a, b 和其他一些类似问题的发现,我将这些答案总结到这个脚本中的一个别名中以添加到我的 .bash_profile.

alias fix_server="kill -9 $(touch tmp/pids/server.pid && cat tmp/pids/server.pid) && rm tmp/pids/server.pid && fg" 

所以现在我只需要 Ctrl + Zfix_server.