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


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.