2016-04-18 13 views
1

Ich beendete Installation von supervisord auf meinem centos6, es funktioniert auch gut. Aber ich fand heraus, dass ich den Befehl "kill" verwenden konnte, um Supervisord selbst zu töten. Ich denke, das ist falsch, ich nehme an, Supervisor ist nicht killbar, sonst kann es nicht die Sicherheit anderer Dienste garantieren, die von ihm kontrolliert werden. Also wie kann ich bitte Supervisor nicht killable machen?wie man supervisord unkillable macht

+1

Hallo Leute, wenn Sie es wissen, können Sie mir bitte einen Hinweis geben, es ist wirklich schwer, das Ergebnis auf Google zu finden, bitte nicht stimmen Sie die Frage zu schließen. – Jack

+0

Ich stimme, um diese Frage als Off-Thema zu schließen, weil es eindeutig nicht im Zusammenhang mit Programmierung & gehört http://unix.stackexchange.com –

+0

Sie können nicht. Das einzige, was Sie tun könnten, ist, den Supervisor als einen anderen Benutzer auszuführen, der dann nicht durch andere Verwendungen gekillt werden kann; root kann es aber trotzdem töten. – Dencker

Antwort

2

Dies ist auf keinen Fall möglich, auf eine korrekte Art und Weise getan werden sagen wir, obwohl es etwas gibt, was Sie versuchen könnten, und ich denke, es wird funktionieren. Theoretisch kann nur root alle Prozesse töten und alle anderen können immer von ihrem Besitzer getötet werden. Was Sie tatsächlich versuchen könnten, ist einen Benutzer mit einem unzerbrechlichen Passwort zu erstellen und root zu bekommen, um einen Prozess mit su zu starten. (Root wird nicht aufgefordert, ein Passwort einzugeben, aber ‚so‘ wird sich ändern, dass Benutzer)

su newacct ksh -c "/home/newacct/bin/the_process_to_start.ksh and its parameters" 
su - newacct ksh -c "/home/newacct/bin/the_process_to_start.ksh and its parameters" 

Der Bindestrich sagt, dass Sie die .profile des Benutzers ausführen soll. Es hängt davon ab, ob Sie wollen oder nicht. (Sie müssen kein Skript ausführen, aber ich nahm an, dass Sie in diesem Beispiel wahrscheinlich waren.)

Auf diese Weise kann niemand außer root diesen Prozess beenden, weil niemand dieser Benutzer werden kann.

Vielleicht möchten Sie google, wie Sie ein unverschlüsselbares Passwort in/etc/shadow erstellen können. Es ist eigentlich einfach.

+0

Oder sagen, wenn Supervisord getötet wurde, wie erlebt es sofort wieder, wird der folgende Prozess wieder zu erleben, sobald Sie es töten: root 1 0 0 14:21? 00:00:00/usr/bin/python/usr/bin/supervisord – Jack

+1

Wenn es getötet wird alle Kinderprozesse werden mit ihm abstürzen ich denke, keine Zeit, sie zu retten, indem Sie es wieder öffnen ...... immer noch, Ich denke ... der Hauptpunkt ist, es am Leben zu erhalten, und das ist der einzige Weg, an den ich denken kann .... – hedgehog