我正在为Ruby on Rails项目设置一个共享开发服务器。
有没有一种好方法可以将其设置为重新启动,或者每当有人将提交提交到主分支时重新加载代码(例如)?我不关心每次都设置宝石等,而是Heroku - 我只想运行新代码。
如果有任何问题,我可以手动进入并重新启动服务器 - 我只是不想每次都这样做。
答案 0 :(得分:3)
在post-receive钩子中,你很可能需要grep for Ruby PID,杀死那个进程,然后重启Rails服务器。
答案 1 :(得分:3)
Git Hooks正是您要找的。 p>
使用这些,您可以根据特定条件运行自定义命令。
在post-commit
文件夹下创建一个名为.git/hooks
的文件,如下所示:
#!/bin/sh
exec rake deploy
并在你的Rakefile中,
task :deploy do
pid = IO.open("ps").grep(/script\/rails/) { |x| x.split(" ").first }.first
sh "kill -9 #{pid}"
sh "rails s"
end