বর্তমানে আমি আমার sh স্ক্রিপ্ট ফাইলে এর মতো লাইন ব্যবহার করছি:
kill `ps aux | grep -F 'myServer' | grep -v -F 'grep' | awk '{ print $2 }'`
তবে আমি আশ্চর্য হই যে কেবল প্রক্রিয়া ( myServerএখানে) চলমান থাকলে কীভাবে এটি কল করবেন ?
বর্তমানে আমি আমার sh স্ক্রিপ্ট ফাইলে এর মতো লাইন ব্যবহার করছি:
kill `ps aux | grep -F 'myServer' | grep -v -F 'grep' | awk '{ print $2 }'`
তবে আমি আশ্চর্য হই যে কেবল প্রক্রিয়া ( myServerএখানে) চলমান থাকলে কীভাবে এটি কল করবেন ?
উত্তর:
আমি সাধারণত pgrep এবং pkill ব্যবহার করি
if pgrep myServer; then pkill myServer; fi
pkill myServerবা killall -q myServer? অযোগ্য প্রক্রিয়াগুলিকে হত্যা করার চেষ্টা করার কোনও খারাপ দিক নেই।
|| trueতারপর।
if ! killall -q myServer; then echo ERROR; fi?
কিছুটা ভিন্ন দৃষ্টিভঙ্গি এরকম কিছু হবে:
killall PROCESS || echo "Process was not running."
এই এড়াতে হবে 1ত্রুটি-কোড থেকে প্রত্যাগত killall, কমান্ড যদি প্রক্রিয়া অস্তিত্ব ছিল না। echoঅংশটি কেবল কার্যকর হলেই killallফিরে আসবে 1, যখন নিজেই ফিরে আসবে 0(সাফল্য)।
killall -qকরা ভাল
killall -qসমস্ত ইউনিক্স স্বাদে সমর্থিত নয়, ম্যাকওএস ক্যাটালিনা এখনও এটিতে নেই।
ব্যবহার করার চেষ্টা করুন:
sudo kill `pidof process_name`
যেখানে প্রক্রিয়া_নাম হ'ল প্রক্রিয়াটির নাম আপনি হত্যা করতে চান। এর মধ্যে দুর্দান্ত যা হ'ল পিডোফ প্রদত্ত নামের সাথে মিলে যাওয়া সমস্ত প্রক্রিয়ার পিডের তালিকা তৈরি করবে। যেহেতু কিল একাধিক পিড গ্রহণ করে, তাই এটি একসাথে সমস্তকে মেরে ফেলবে।
আমাকে জানতে দা্ও এটা সাহয্য করে কি - না।
kill `pidof process_name। যদি এটি একটি খালি তালিকা ফেরত দেয়, কিল কলটি এড়িয়ে যান।
ছোট স্ক্রিপ্ট আমি আরএন্ডডি দিয়ে তৈরি করেছি। আমি আশা করি তুমি এটা পছন্দ করবে
#!/bin/bash
echo " Enter the process name:"
read $proc_name
if pgrep $proc_name
then
echo " $proc_name running "
pkill $proc_name
echo "$proc_name got killed"
else
echo " $proc_name is not running/stopped "
fi
স্ক্রিপ্ট.শ এর মতো কিছু নামের সাথে এটি সংরক্ষণ করুন
chmod +x script.sh
./script.sh
তারপরে আপনার প্রক্রিয়াটির নাম দিন।
দ্রষ্টব্য: আমি এটি এবং এটির জরিমানা দিয়ে অনেকবার চেষ্টা করেছি।
প্রক্রিয়াটি উপস্থিত রয়েছে কিনা তা পরীক্ষা করুন pidof। যদি তা হয় তবে এটি হত্যা করুন:
(! pidof process_name) || sudo kill -9 $(pidof process_name)
উপরের কমান্ডটি কার্যকর করার পরে প্রস্থান কোড সর্বদা 0 থাকে।
killপ্রক্রিয়াটি কেবল তখনই কল করা অসম্ভব , কারণ পরীক্ষা এবং অনুরোধের মধ্যে একটি দৌড়ের শর্ত রয়েছেkill(সেই স্বল্প সময়ে প্রক্রিয়াটি অন্য কারণে থামানো সম্ভব) stopped আপনার ব্যবহার করা উচিতpkillবাkillallযা আপনি যা করার চেষ্টা করছেন ঠিক তেমনই করুন তবে কম টাইপ করে (এবং সম্ভবত কিছু অন্যান্য সুবিধাও)।