Come uccidere un process che non muore mai?

Problema

Ho un process java che non muore né con SIGTERM né SIGKILL.

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 

Ricompone each volta che il segnale viene ricevuto.

 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 

Sembra strano, ma anche riavvii il server, ancora non muoia .

Il process è stato eseguito con script init con il seguente command:

 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} & 

C'è un modo per forzare questo process per uccidere diversamente dalla reinstallazione del sistema operativo?

Ambiente

Processo:

 logstash 5.0.0~alpha5 

OS:

 Red Hat Enterprise Linux Server release 6.7 (Santiago) 

Versione Java:

 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) 

Il server viene distribuito su Microsoft Azure.

  • Logstash-forwarder sta lanciando errori SSL
  • logstash (o graylog?) vs nxLog per raccogliere i registri degli events e i registri csv
  • Logstash con journald invece di rsyslog
  • registro multistrato logstash per una query mysql
  • Invio di registri di Subversion a Logstash
  • Logstash, Kibana e gli avvisi di posta elettronica
  • get i registri dall'unità systemd in file piatti e logstash
  • Non rsyslog di inoltro
  • 2 Solutions collect form web for “Come uccidere un process che non muore mai?”

    init: logstash process principale (2546) ucciso dal segnale KILL

    In realtà il tuo process si ferma qui.

    init: logstash process principale finito, respawning

    Un nuovo process logstash viene avviato da init per sostituirlo.


    Ciò significa anche che il process di controllo è responsabile per il riavvio di logstash: init . (Su RHEL 6 e CentOS che è Upstart) Il tuo process probabilmente viene avviato da /etc/inittab o da un file drop-in in /etc/init/logstash.conf (o simili) e dovrebbe essere controllato con lo strumento apropiate, initctl e non con kill .

    Provare initctl list per vedere se il logstash è presente.

    Quindi il initctl stop logstash lo interromperà.

    La modifica o la rimozione del file conf in / etc / init vi permetterà di distriggersrla in modo persistente.

    Puoi anche essere in grado di controllare il lavoro con i comandi di service e chkconfig .

    È probabile che il logstash-relay sia in esecuzione … Dovresti cercare di interrompere il logstash-relay

    dopo questo controllo se il ps è lì allora initctl list | ordinare

    Spero che questo ti aiuterà! Ha risolto il problema per me!

    Grazie

    VR

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.