Ich brauche eine zuverlässige Methode, um zu überprüfen, ob ein Twisted-basierter Server, der über twistd (und eine TAC-Datei) gestartet wurde, erfolgreich gestartet wurde. Es kann fehlschlagen, weil einige Netzwerkoptionen falsch eingestellt sind. Da ich nicht auf das twistd-Protokoll zugreifen kann (da es in /dev/null protokolliert wird, weil ich die log-clutter twistd erzeugt), muss ich herausfinden, ob der Server erfolgreich in einem Launch-Skript gestartet wurde, das den twistd-Aufruf umschließt.
Das Start-Skript ist ein Bash-Skript wie dieses:
#!/usr/bin/bash
twistd \
--pidfile "myservice.pid" \
--logfile "/dev/null" \
--python \
myservice.tac
Alles, was ich im Netz gefunden habe, sind einige Hacks mit ps oder ähnlichem . Aber ich mag einen solchen Ansatz nicht, weil ich ihn nicht für zuverlässig halte.
Also denke ich darüber nach, ob es eine Möglichkeit gibt, auf die Interna von Twisted zuzugreifen, und alle derzeit laufenden Twisted-Anwendungen zu erhalten? Auf diese Weise könnte ich die aktuell laufenden Anwendungen nach dem Namen meiner zu startenden Twisted-Anwendung (wie ich sie in der TAC-Datei benannt habe) abfragen.
Ich denke auch darüber nach, nicht die ausführbare Datei twistd zu verwenden, sondern ein Python-basiertes Startskript zu implementieren, das den twistd-Inhalt enthält, etwa die Antwort auf diese Frage gibt aber ich weiß nicht, ob mir das hilft, den Status des Servers zum Laufen zu bringen.
Meine Frage ist also nur: gibt es einen zuverlässigen und nicht hässlichen Weg, um festzustellen, ob ein mit twistd gestarteter Twisted Server erfolgreich gestartet wurde, wenn twistd-logging deaktiviert ist?