Uniksowy skrypt /etc/init.d w Ruby
Posted by Jarosław Zabiełło Fri, 29 Sep 2006 12:04:00 GMT
Ruby całkiem dobrze nadaje się do pisania skryptów systemowych. W sumie nie wiem dlaczego do tej pory pisałem skrypty tego typu w uniksowym bash’u. :)
#!/usr/bin/env ruby
MONGREL = "/usr/bin/mongrel_rails"
PROJECT = "/home/httpd/somedomain.com/rails_project"
def execute(action, project)
Dir.chdir(project)
print "#{MONGREL} #{action}..."
$defout.flush # unbuffered output
`#{MONGREL} cluster::#{action}`
puts 'done'
end
case ARGV.first
when 'start': execute 'start', PROJECT
when 'stop': execute 'stop', PROJECT
when 'restart': execute 'restart', PROJECT
end
unless %w{start stop restart}.include? ARGV.first
puts "Usage: sudo #{__FILE__} {start|stop|restart}"
exit
end

Kanały IRC![[Dilber w Onecie]](/images/larry.png)


można tu dodać sprawdzenie $? == 0 po ``, dające pewność że wszystko zakończyło się poprawnie.