Bagaimana cara membunuh proses yang tidak pernah mati?


26

Masalah

Saya memiliki proses java yang tidak mati dengan SIGTERM atau 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

Itu respawns setiap kali sinyal diterima.

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

Kedengarannya aneh tapi bahkan saya reboot server, masih tidak mati .

Proses dijalankan melalui skrip init dengan perintah di bawah ini:

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

Apakah ada cara untuk memaksa proses ini untuk membunuh selain menginstal ulang OS?

Lingkungan Hidup

Proses:

logstash 5.0.0~alpha5

OS:

Red Hat Enterprise Linux Server release 6.7 (Santiago)

Versi 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)

Server digunakan di Microsoft Azure.


Mengganti nama salah satu file yang diperlukan untuk proses sebelum membunuh itu harus mencegahnya berhasil restart.
— Hagen von Eitzen

6
Anda harus memenggalnya! Proses itu jelas adalah seorang Highlander.
— beppe9000

4
@ beppe9000 Dan sementara kita berada dalam suasana hati itu, kita mungkin juga mengeksekusi orang tuanya.
— Dmitry Grigoryev

2
Segera setelah saya melihat judulnya, saya tahu ini akan menjadi Logstash
— Mark Henderson

1
Tembak dengan peluru adamantium di kepala.
— noɥʇʎԀʎzɐɹƆ

Jawaban:


77

init: proses utama logstash (2546) terbunuh oleh sinyal KILL

Sebenarnya proses Anda berhenti di sini.

init: proses utama logstash berakhir, respawning

Sebuah baru proses logstash dimulai oleh init untuk menggantikannya.


Itu juga menunjukkan proses kontrol mana yang bertanggung jawab untuk me-restart logstash: init . (Pada RHEL 6 dan CentOS yang baru mulai) Proses Anda kemungkinan besar dimulai dari salah satu /etc/inittabatau file drop-in di /etc/init/logstash.conf(atau serupa) dan harus dikontrol dengan alat yang sesuai, initctldan bukan dengan kill.

Coba initctl listlihat apakah ada logstash.

Maka initctl stop logstashakan menghentikannya.

Mengedit atau menghapus file conf di / etc / init akan memungkinkan Anda untuk menonaktifkannya secara terus-menerus.

Anda bahkan mungkin dapat mengontrol pekerjaan dengan perintah servicedan chkconfig.


4
+1 untuk menggunakan alat yang tepat untuk pekerjaan itu.
— Tiang

0

Mungkin karena relay-logstash sedang berjalan ... Anda harus mencoba untuk menghentikan relay-logstash

setelah ini periksa apakah ps ada di sana kemudian initctl daftar | menyortir

Saya harap ini akan membantu Anda! Itu memperbaiki masalah bagi saya!

Terima kasih

VR


Informasi dalam pertanyaan dengan jelas menunjukkan bahwa itu adalah inityang bertanggung jawab untuk respawning proses.
— kasperd
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.