2016-09-08 1 views
2

Ich erwäge verschiedene Methoden zum automatischen Starten und Steuern von verteilten Distributed Scheduler und Arbeiter auf Ubuntu 16.04.Automatischer Start von DASK Distributed Scheduler und Arbeiter auf Ubuntu 16.04

Derzeit denke ich, dass die relevanteste Option ist, Systemd Daemon zu verwenden. Dies erfordert die Erstellung und Installation von unit files.

Systemd erfordert, dass eine Einheitendatei über eine Befehlszeile verfügt, um den Dienst zu stoppen, und zwar unter ExecStop.

Befehl zum Neuladen der Konfiguration wäre auch nützlich, aber ich bin mir nicht sicher, wie Python Module neu zu importieren und wenn es einfacher ist als nur den Prozess neu starten.

Sieht so aus, als ob es derzeit nicht möglich ist, Scheduler/Worker durch Ausführen von dask-scheduler oder dask-worker Befehl zu stoppen, nicht wahr? Ich habe keine relevanten Befehlszeilenschalter gefunden.

Eine andere Option wäre, PID-Datei zu erstellen und Standard kill Befehl zu verwenden, jedoch scheint Dask verteilte PID-Dateien nicht zu erstellen. Habe ich recht?

Antwort

1

Wenn Sie ein Unterbrechungssignal (wie bei Ctrl-C) an den Prozess dask-worker oder dask-scheduler senden, werden sie es abfangen und sauber herunterfahren.

Wir schreiben derzeit keine PID-Dateien, aber das wäre einfach zu machen. Ich empfehle Ihnen, dass Sie open an issue, wenn dies etwas ist, das Sie in dem Projekt enthalten sollte. Gleiches gilt für das Erstellen von ordnungsgemäßen Start/Stopp-Befehlen, die in anderen Diensten üblich sind.

+1

Ja, aber man braucht eine Prozess-ID, um ein Interrupt-Signal zu senden, und es ist manchmal nicht einfach, es zu finden. – wl2776

0

Endlich bin ich zur Einstellung ExecStop=/bin/true gekommen. Systemd hält die Dienste weiterhin erfolgreich an und startet sie neu.

Current systemd manual sagt, dass ExecStop ist optional.