2010-10-06 13 views
1

J'ai une application rails qui doit démarrer un service Web Sinatra de soutien. Je voudrais l'invoquer via une tâche de rake. Mais je veux que l'application Sinatra commence dans une nouvelle fenêtre de terminal (commande). Oui, j'ai besoin de le voir en cours d'exécution.Comment faire pour exécuter la commande shell dans une nouvelle fenêtre dans ruby ​​/ rails?

# rake task 
namespace :daq_controller do 
    desc "start the DAQ contoller web service" 
    task :start do 

    dir = File.expand_path(File.dirname(__FILE__)) 
    sh "cd #{dir}; rackup daq_controller.rb" 
    end 
end 

points de bonus s'il fonctionne sur * nix et fenêtres

+0

Ouverture d'une fenêtre de terminal est très spécifique OS, cependant. Quel "UNIX" avez-vous l'intention de lancer? Lancer un nouveau xterm est facile. Lancer une nouvelle fenêtre Terminal.app ne l'est pas. – tadman

+0

Mac: Terminal, Linux: gnome-terminal, Win: ruby ​​peut déjà le faire – Karl

Répondre

0

Linux: gnome-terminal gnome-terminal --command

+0

ou --execute CMD ARGS Identique à - commande ci-dessus, inclus pour compatibilité. – Bohdan