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:
rails server
| shotgun
| etc ...). 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).
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).
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.
Ich konnte nicht herausfinden, wie ich mit dem Ruby Daemons-Juwel, das Peter vorgeschlagen hatte, machen konnte, und endete mit systemu stattdessen:
%Vor%Sieh dir das Raad-Juwel an (Ruby als Dämon) Ссылка - es wird transparent mit MRI Ruby und JRuby funktionieren. (Ich bin der Autor).
Tags und Links ruby