ich mehrere Instanzen eines Arbeitnehmers in dieser Antwort, wie leite: Starting multiple upstart instances automaticallyNeustarten Upstart Instanz verarbeitet
Frage: Kann ich alle Instanzen auf einmal neu gestartet werden?
Zu meinen Arbeitern beginnen ich tun kann:
initctl my-Arbeiter
starten Was mir dann erlaubt, zu tun:
initctl Status Arbeiter N = 1 Arbeiter (1) Start/Betrieb, Prozess 551
initctl Status Arbeiter N = 2 Arbeiter (2) Start/Laufen, Prozess 552
Gibt es eine Möglichkeit, so etwas zu tun:
initctl my-Arbeiter neu starten
ich alle Instanzen in der Lage sein möchten, neu zu starten, ohne dass zu wissen, wie viele laufen.
Hier ist meine my-workers.conf
start on stopped cloud-init
stop on shutdown
env NUM_WORKERS=4
script
for i in `seq 1 $NUM_WORKERS`
do
start worker N=$i
done
end script
Und worker.conf
stop on shutdown
chdir /path/to/current
respawn
instance $N
script
exec su -c "/home/worker/.rvm/bin/rvm-shell -c 'bundle exec rake work 2>&1 >> /var/log/worker-$N.log'" worker
end script
nahm mich eine Weile, um zu verstehen, was du meinst, aber wenn ich es bekommen habe ... * Geist geblasen * – Evgeny
@Evgeny hier gilt das gleiche, haha. Wenn du wie ich, und wahrscheinlich Evgeny, hast du nur 5 Minuten damit verbracht, zu verstehen, was hier los ist: im Grunde erstellt meine-workers.conf mehrere Upstart-Skripte und Exits, aber jede worker.conf hat jetzt die Zeile 'stop on stop my workers ' Wenn Sie also versuchen, den bereits beendeten My-Workers-Prozess zu stoppen, werden die Arbeiter immer noch darauf hören und sterben. Das "Neustarten" meiner Worker, obwohl es vorher noch nicht wirklich ausgeführt wurde, hat den Effekt, dass die Worker getötet (gestoppt) werden und das Vorstart-Skript (Start) erneut ausgeführt wird, wodurch sie erneut gestartet werden. – Mahn
Es funktioniert, aber es ist ziemlich hackish. 'Service my-workers start' wird tatsächlich hängen. In der Upstart-Dokumentation heißt es: 'Alle Job-Dateien müssen entweder eine Exec- oder eine Skript-Zeilengruppe haben.' Vor-Start-Skript und Post-Stop-Skript - Es wird nicht erwartet, dass sie den Prozess starten, in der Tat können sie nicht. ' Vielleicht ist es besser, einfach einen anderen Job zum Stoppen oder Neustarten von Arbeitern zu erstellen. –