যে প্রক্রিয়া কখনও মারা যায় না তাকে কীভাবে হত্যা করা যায়?


26

সমস্যা

আমার জাভা প্রক্রিয়া রয়েছে যা সিগন্যরমে বা সিগিলের সাথেই মারা যায় না।

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

এটি প্রতিবার সংকেত প্রাপ্তির পুনঃস্থাপন করে।

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

এটি অদ্ভুত মনে হলেও আমি সার্ভারটি পুনরায় বুট করি, এটি এখনও মারা যায় না

প্রক্রিয়াটি নিচের কমান্ড সহ init স্ক্রিপ্টের মাধ্যমে কার্যকর করা হয়েছিল:

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

ওএস পুনরায় ইনস্টল করা ছাড়া এই প্রক্রিয়াটিকে অন্য হত্যা করতে বাধ্য করার কোনও উপায় আছে কি?

পরিবেশ

প্রক্রিয়া:

logstash 5.0.0~alpha5

ওএস:

Red Hat Enterprise Linux Server release 6.7 (Santiago)

জাভা সংস্করণ:

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)

মাইক্রোসফ্ট অ্যাজুরেতে সার্ভার মোতায়েন রয়েছে।


হত্যার আগে এটির জন্য প্রয়োজনীয় ফাইলগুলির একটির নাম পরিবর্তন করে এটি সফলভাবে পুনরায় আরম্ভ হতে বাধা দেওয়া উচিত।
হেগেন ভন ইটজেন

6
আপনি এটির শিরশ্ছেদ! এই প্রক্রিয়াটি স্পষ্টভাবে একটি হাইল্যান্ডার।
beppe9000

4
@ beppe9000 এবং আমরা সেই মেজাজে থাকাকালীন আমরা এর পিতামাতাকেও কার্যকর করতে পারি।
দিমিত্রি গ্রিগরিয়েভ

2
শিরোনামটি দেখার সাথে সাথেই আমি জানতাম এটি হবে লগস্ট্যাশ
মার্ক হেন্ডারসন

1
মাথায় অ্যাডামেন্টিয়াম বুলেট দিয়ে গুলি করুন।
noɥʇʎԀʎzɐɹƆ

উত্তর:


77

init: লগস্ট্যাশ মূল প্রক্রিয়া (2546) কেআইএলএল সংকেত দ্বারা নিহত হয়েছে

আসলে আপনার প্রক্রিয়া এখানে থামবে।

init: লগস্ট্যাশ মূল প্রক্রিয়া শেষ হয়েছে, পুনর্নির্বাচিত

এটিকে প্রতিস্থাপনের জন্য নতুন একটি লগস্ট্যাশ প্রক্রিয়া শুরু করা হয়।


এটিও দেখায় যে কোন নিয়ন্ত্রণ প্রক্রিয়া লগস্ট্যাশ পুনরায় আরম্ভ করার জন্য দায়ী: init । (RHEL 6 এবং সেন্টওএস উপর ভুঁইফোড় যে) আপনার প্রক্রিয়া সম্ভবত পারেন থেকে শুরু পরার /etc/inittabবা ড্রপ-ইন ফাইলে /etc/init/logstash.conf(বা অনুরূপ) এবং apropiate টুল, সঙ্গে নিয়ন্ত্রণ করা উচিত initctlএবং সঙ্গে kill

initctl listলগস্ট্যাশ আছে কিনা তা দেখার চেষ্টা করুন ।

তাহলে initctl stop logstashএটি বন্ধ হবে।

কনফাইজ ফাইলটি / etc / init এ সম্পাদনা বা অপসারণ আপনাকে অবিচ্ছিন্নভাবে এটি অক্ষম করতে দেয়।

এমনকি আপনি আদেশ serviceএবং chkconfigকমান্ডগুলির সাহায্যে কাজটি নিয়ন্ত্রণ করতে সক্ষম হতে পারেন ।


4
কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করার জন্য +1।
মাস্তে

0

এটি সম্ভবত কারণ লগস্ট্যাশ-রিলে চলছে ... আপনার লগস্ট্যাশ-রিলে বন্ধ করার চেষ্টা করা উচিত

এই পরীক্ষার পরে যদি PS থাকে তবে initctl তালিকা | সাজান

আমি আশা করি এটা তোমাকে সাহায্য করবে! এটা আমার জন্য সমস্যা স্থির!

ধন্যবাদ

ভি


প্রশ্নের তথ্যগুলি পরিষ্কারভাবে ইঙ্গিত দেয় যে initপ্রক্রিয়াটি শ্বাস ফেলার জন্য এটিই দায়বদ্ধ ছিল।
কাস্পারড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.