Problem
Ich habe Java-Prozess, der weder mit SIGTERM noch SIGKILL stirbt.
logstash 2591 1 99 13:22 ? 00:01:46 /usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -Xmx1g -Xms256m -Xss2048k -Djffi.boot.library.path=/usr/share/logstash/vendor/jruby/lib/jni -Xbootclasspath/a:/usr/share/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home=/usr/share/logstash/vendor/jruby -Djruby.lib=/usr/share/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /usr/share/logstash/lib/bootstrap/environment.rb logstash/runner.rb --path.settings /etc/logstash
Es wird jedes Mal neu gestartet, wenn ein Signal empfangen wird.
Sep 15 13:22:17 test init: logstash main process (2546) killed by KILL signal
Sep 15 13:22:17 test init: logstash main process ended, respawning
Es klingt seltsam, aber selbst wenn ich den Server neu starte, stirbt er immer noch nicht .
Der Prozess wurde über das Init-Skript mit dem folgenden Befehl ausgeführt:
NAME=logstash
LS_USER=logstash
LS_OPTS="--path.settings=/etc/logstash"
LS_PIDFILE=/var/run/$NAME/$NAME.pid
LS_STDERR="/var/log/logstash/logstash.stderr"
DAEMON="/usr/share/logstash/bin/logstash"
runuser -s /bin/sh -c "exec $DAEMON ${LS_OPTS}" ${LS_USER} &>${LS_STDERR} &
Gibt es eine Möglichkeit, diesen Prozess zum Beenden zu zwingen, außer das Betriebssystem neu zu installieren?
Umgebung
Prozess:
logstash 5.0.0~alpha5
Betriebssystem:
Red Hat Enterprise Linux Server release 6.7 (Santiago)
Java-Version:
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
Der Server wird unter Microsoft Azure bereitgestellt.
Antworten:
Eigentlich hört Ihr Prozess hier auf.
Ein neuer Logstash-Prozess wird von init gestartet, um ihn zu ersetzen.
Dies zeigt auch, welcher Steuerungsprozess für den Neustart von logstash: init verantwortlich ist . (Bei RHEL 6 und CentOS ist dies Upstart.) Ihr Prozess wird höchstwahrscheinlich entweder über
/etc/inittab
eine Drop-In-Datei/etc/init/logstash.conf
oder eine ähnliche Datei gestartet und sollte mit dem entsprechenden Tool gesteuert werden,initctl
nicht mitkill
.Versuchen
initctl list
Sie festzustellen, ob der Logstash vorhanden ist.Dann
initctl stop logstash
wird es aufhören.Wenn Sie die conf-Datei in / etc / init bearbeiten oder entfernen, können Sie sie dauerhaft deaktivieren.
Möglicherweise können Sie den Job sogar mit den Befehlen
service
undchkconfig
steuern.quelle
Dies liegt wahrscheinlich daran, dass Logstash-Relay ausgeführt wird. Sie sollten versuchen, Logstash-Relay zu stoppen
nach dieser überprüfung, ob das ps da ist, dann initctl liste | Sortieren
Ich hoffe, dies wird dir helfen! Es hat das Problem für mich behoben!
Vielen Dank
VR
quelle
init
die Person handelte, die für das erneute Aufstellen des Prozesses verantwortlich war.