Wie starte und stoppe ich einen Shell-Daemon von Ruby

8

Wie würde ich einen Shell-Daemon starten und ihn dann innerhalb desselben Ruby-Skripts stoppen?

Um genauer zu sein, möchte ich mein Ruby-Skript:

  • Starten Sie einen Server-Daemon mit einem Shell-Befehl ( rails server | shotgun | etc ...).
  • mache ein paar Dinge während der Server läuft.
  • Lassen Sie den Server beenden.

Allumfassende Lösungen, die in Ruby 1.8 / 1.9 und Unix / Windows unterstützt werden, werden bevorzugt. (Ich lese fork zum Beispiel funktioniert nicht unter Windows).

    
Steph Thirion 07.02.2011, 00:15
quelle

4 Antworten

3

Ich kann das Ruby Daemons Juwel wärmstens empfehlen. Ich denke, es hat alle Funktionen, die Sie brauchen.

Überprüfen Sie den Abschnitt 3 seiner README, und achten Sie besonders auf Daemons.call Methode, die dies ermöglicht um beliebigen Code zu dämonisieren (in dem du einfach Kernel.system einer App liebst).

    
Peter 07.02.2011 09:10
quelle
0

Hier ist ein ähnliches Problem mit der Arbeitslösung, die die Windows-Befehlszeile verwendet:

Ссылка

Das ist ziemlich dreckig, aber es macht den Trick.

Verwenden Sie Linux, wenn Sie können, oder verwenden Sie einfach grundlegende Befehlszeilentools (installiert mit Git für Windows). Mit bash ist die Lösung sehr einfach:

%Vor%

P.S. Windows ist sowieso keine empfohlene Umgebung für Rails. Sie werden auf lange Sicht wahrscheinlich viel Zeit sparen, wenn Sie auf Linux umsteigen, weil Sie keine seltsamen Umweltprobleme wie dieses lösen werden.

    
Alexander Lebedev 07.02.2011 09:24
quelle
0

Ich konnte nicht herausfinden, wie ich mit dem Ruby Daemons-Juwel, das Peter vorgeschlagen hatte, machen konnte, und endete mit systemu stattdessen:

%Vor%     
Steph Thirion 15.03.2011 22:12
quelle
0

Sieh dir das Raad-Juwel an (Ruby als Dämon) Ссылка - es wird transparent mit MRI Ruby und JRuby funktionieren. (Ich bin der Autor).

    
Colin Surprenant 13.06.2012 13:44
quelle

Tags und Links