我意识到我在这里聚会迟到了,但是在互联网上搜索了一个很好的解决方案之后(并找到了这个页面,但很少有其他页面,没有一个完整的解决方案)并且在尝试让prax工作失败之后,我决定写我自己解决这个问题并将其回馈给社区!
查看我的rdev bash 脚本要点- 一个放在 ~/bin 目录中的 bash 脚本。这将在 gnome-terminal 中为每个 rails 应用程序创建一个新选项卡,其中应用程序名称和端口位于选项卡的标题中。它通过检查端口是否正在使用以及进程是否实际运行来验证应用程序是否成功启动。它还通过确保端口不再使用并且进程不再运行来验证 Rails 应用程序关闭是否成功。
设置非常简单,只需更改以下两个配置值:
# collection of rails apps you want to start in development (should match directory name of rails project)
# note: the first app in the collection will receive port 3000, the second 3001 and so on
#
rails_apps=(app1 app2 app3 etc)
#
# The root directory of your rails projects (~/ is assumed, do not include)
#
projects_root="ruby/projects/root/path"
使用此脚本,您可以在一个命令中启动所有 Rails 应用程序或全部停止它们,还可以停止、启动和重新启动单个 Rails 应用程序。当 OP 请求运行 3 个应用程序时,这将允许您根据需要运行任意数量的端口,并按顺序从列表中的第一个应用程序的 3000 开始分配端口。由于 chruby,每个应用程序都使用正确的 ruby 版本启动,并且 .env 是在升级过程中获取的,因此您的应用程序将拥有所需的一切。一旦你完成了开发rdev stop
,你所有的 Rails 应用程序都将被杀死,终端窗口将关闭。
# Usage Examples:
#
# Show Help
# ~/> rdev
# Usage: rdev {start|stop|restart} [app port]
#
# start all rails apps
# ~/> rdev start
#
# start a single rails app
# ~/> rdev start app port
#
# stop all rails apps
# ~/> rdev stop
#
# stop a single rails app
# ~/> rdev stop app port
#
# restart a single rails app
# ~/> rdev restart app port
作为记录,所有测试都是在 Ubuntu 18.04 上完成的。该脚本需要:bash、chruby、gnome-terminal、lsof并利用BASH_POST_RC 技巧。