প্রথমত, এটি ব্যাশের জন্য নির্দিষ্ট নয়। এটিটি কেএসএস, ড্যাশ এবং জেডএস একইভাবে আচরণ করে: তারা কমান্ড লাইন সংস্করণের সময় SIGTERM এবং SIGQUIT উপেক্ষা করে; মিক্স হিসাবে, এটিও প্রস্থান করে না তবে তাদের সাথে সাইন্টের মতো আচরণ করে।
Ksh ম্যানুয়াল এবং ব্যাশ ম্যানুয়াল উভয়ই এই শর্তগুলিতে SIGTERM উপেক্ষা করার ন্যায়সঙ্গত:
যাতে এটি kill 0
একটি ইন্টারেক্টিভ শেলকে হত্যা করে না
kill 0
শেলটি যে প্রক্রিয়া গোষ্ঠীতে রয়েছে তাতে সমস্ত প্রক্রিয়া মেরে ফেলে ¹ সংক্ষেপে, প্রক্রিয়া গ্রুপটি টার্মিনালের সম্মুখভাগে চলমান সমস্ত প্রক্রিয়া, বা একটি ব্যাকগ্রাউন্ডে বা স্থগিত কাজের সমস্ত প্রক্রিয়া সমন্বিত করে।
আরও স্পষ্টভাবে, কাজ নিয়ন্ত্রণের সাথে আধুনিক শেলগুলিতে এটি ঘটে । এই ধরনের শেলগুলিতে, kill 0
দরকারী হবে না, কারণ শেলটি তার নিজস্ব একটি প্রক্রিয়া গোষ্ঠীতে থাকবে। পুরানো শেলগুলি (বা পরে আধুনিক শেলগুলি set +m
) ব্যাকগ্রাউন্ড কমান্ডগুলির জন্য প্রক্রিয়া গ্রুপ তৈরি করে না। আপনি কমান্ড ব্যবহার করতে পারে তাই kill 0
out.² লগ এভাবে পেয়ে ছাড়া সব পটভূমি কমান্ড হত্যা করার kill 0
একটি পুরানো এক যা আর আজকাল সমর্থনযোগ্য কিন্তু অনুন্নত সহাবস্থানযোগ্যতা জন্য রাখা মত যুক্তিপূর্ণ সৌন্দর্য।
তবে অন্যান্য অনুরূপ পরিস্থিতি রয়েছে যেখানে শেল প্রতিরোধ ক্ষমতা তৈরি করা কার্যকর। আপনি যেখানে টার্মিনালকে হাগিং করার প্রক্রিয়াগুলি দেখেন সে ক্ষেত্রে বিবেচনা করুন এবং লগ আউট না করে আপনি তাদের হত্যা করতে চান। অনেক সিস্টেমে এমন একটি সরঞ্জাম থাকে pkill
যা আপনাকে টার্মিনালে চলমান প্রক্রিয়াগুলি মেরে ফেলতে দেয়। আপনি বর্তমান টার্মিনালে চলমান সমস্ত প্রক্রিয়া চালাতে pkill -t $TTY
বা pkill -QUIT -t $TTY
হত্যা করতে পারেন , শেলটি বাদ দিয়ে যা সিগন্যালটিকে উপেক্ষা করে।
শেলটি সাধারণত ব্যবহারকারী দূরে চলে যায় যখন ব্যবহারকারী এটি থেকে বেরিয়ে আসে (যেমন একটি কমান্ড সহ exit
বা এর সাহায্যে logout
), বা যখন এর টার্মিনালটি ইনপুটটির শেষের সিগন্যাল দেয় (ব্যবহারকারী Ctrl+ টিপে এটির কারণ হতে পারে D) বা সম্পূর্ণভাবে চলে যায়। এই শেষ ক্ষেত্রে, শেলটি সিগন্যাল SIGHUP গ্রহণ করে এবং এটি সেটিকে অগ্রাহ্য করে না।
এক্স সেশন থেকে লগ আউট করার ক্ষেত্রে আপনার ব্যবহারের ক্ষেত্রে kill -15 -1
এটি সম্পন্ন হবে, কারণ এটি টার্মিনাল এমুলেটরটিকে হত্যা করে যার ফলে শেলটি SIGHUP গ্রহণ করে। এটি এক্স সার্ভারকে হত্যা করার পক্ষে যথেষ্ট, তবে এটির জন্য এটির প্রসেস আইডি খুঁজে পাওয়া দরকার। আপনি যদি একই কমান্ডটি কোনও পাঠ্য সেশনে কাজ করতে চান তবে আপনি এটি ব্যবহার করতে পারেন kill -15 -1; exit
। যাইহোক আপনার নখদর্পণে থাকা এটি বেশ বিপজ্জনক আদেশ।
¹ এই নিয়ম হিসাবে শেল ম্যানুয়াল উল্লেখ হবে বলে মনে হচ্ছে না; এটি অন্তর্নিহিত সিস্টেম কলের একটি বৈশিষ্ট্য। এটি POSIX স্পেসিফিকেশন স্পষ্টভাবে উল্লেখ করা হয় ।
Adays আজকাল, এটি করার জন্য, তাদের প্রসেস গ্রুপ আইডি সহ কাজের তালিকাগুলি চালনা করুন jobs -l
, তারপরে kill -123 -456 …
প্রক্রিয়া গোষ্ঠীগুলিকে হত্যা করুন।
/bin/kill
না শেল বিল্টিন? যদি তবে, আমি অনুমান করছি যে শেলটি তার নিজের বিল্টিন দিয়ে নিজেকে হত্যা করবে না।