Ich suche nach einem Prozessmanager, der über die CLI gesteuert werden kann (Hinzufügen, Starten, Stoppen, Löschen), sodass ich ihn programmgesteuert steuern kann.
Ich habe versucht, mithttps://github.com/circus-tent/circus, aber das Problem ist, wenn ich es über die CLI hinzufüge, verschwinden die Prozesse nach dem Neustart des Servers. Ich habe dort ein Problem gemeldet;https://github.com/circus-tent/circus/issues/937. Ich habe Supervisord noch nicht ausprobiert, aber es scheint das gleiche Problem zu haben,https://github.com/mnaberez/supervisor_twiddler/issues/4.
Gibt es einen Prozessmanager, der Daemon-Prozesse über die CLI hinzufügen kann und dessen Änderungen nach dem Neustart bestehen bleiben, ohne die Konfigurationsdatei zu berühren? Danke.
Ich verwende Centos 7 und möchte für jeden registrierten Benutzer ein PHP-CLI-Skript daemonisieren.
Entschuldigung, ich weiß nicht genau, wie ich das besser erklären kann. Ich habe ein PHP-CLI-Skript mit einer Endlosschleife. Das Skript wird ausgeführt, um auf neue eingehende Nachrichten zu warten. Das Skript sollte beispielsweise bei einem neu registrierten Benutzer gestartet php listen.php --user_id=111
und beim Löschen des Benutzers gestoppt werden.
Antwort1
Das Paket, das ich hierfür empfehle, heißt daemontools
Dan Bernstein.
Dies ist eine Sammlung von Tools zur systemweiten Überwachung und Verwaltung von Diensten. Es kümmert sich nicht nur um das Starten und Stoppen von Diensten, sondern überwacht auch die Dienst-Daemons während ihrer Ausführung. Unter anderem bietet es eine zuverlässige Schnittstelle zum Senden von Signalen an Dienst-Daemons ohne die Notwendigkeit von PID-Dateien sowie eine Protokollfunktion mit automatischer Protokolldateirotation und Speicherplatzbeschränkungen.
Es erfüllt alle Ihre Anforderungen. Es ist äußerst zuverlässig. Sobald Sie es eingerichtet haben und wissen, wie es zu verwenden ist, ist nur sehr wenig Wartung erforderlich. Wenn es in Ihrem System ein Problem gibt, liegt es nicht an Daemontools.
- Die gesamte Steuerung erfolgt über die Befehlszeile.
- Die Daemons werden beim Systemneustart neu gestartet.
- Die Daemons können über die CLI gestoppt, gestartet, angehalten und angehalten werden.
- Außerdem wird die Protokollierung für jeden Daemon übernommen.
- Es verwaltet schnelle Neustarts (wenn ein Programm schnell beendet wird).
Dieses Paket und das zugrundeliegende Design sind absolut solide. Der Quellcode hat sich seit Jahren nicht geändert, aber lassen Sie sich davon nicht täuschen. Er musste nicht geändert werden, weil er korrekt ist.
Ich habe dieses Paket persönlich verwendet, um Hunderte von Daemon-Prozessen auf einer Maschine gleichzeitig zuverlässig zu steuern.
Die Konfiguration eines neuen Clients ist einfach: Legen Sie einfach eine Steuerdatei in das angegebene Verzeichnis und dieser wird automatisch gestartet und neu gestartet, sofern Sie nicht eingreifen. Sobald Sie wissen, wie die Datei aussehen soll, erstellen Sie eine Vorlage oder eine Möglichkeit, die Erstellung der Steuerdatei zu parametrisieren.
Ich denke, am besten holen Sie sich das RPM-Quellpaket von kteru auf GitHub und bauen daraus Ihr eigenes RPM. Es ist einfach zu bauen, aber das RPM erleichtert die Verwaltung und Replikation Ihres Systems.
Die Homepage und Dokumentation finden Sie unterhttp://cr.yp.to/daemontools.html
Das CentOS 4-7 RPM-Quellpaket ist auf GitHub verfügbar: https://github.com/kteru/daemontools-rpm
Es gibt auch ein Paket namens runit
, das meines Erachtens ein Zweig von ist, daemontools
ohne einige der Lizenz- und Verteilungsbeschränkungen von daemontools
und mit einer flexibleren Verzeichnislayoutrichtlinie. Es befindet sich in den Debian-Repositorys, über CentOS weiß ich nichts.