"ফোর্স ছাড়" এর চেয়ে শক্তিশালী কিছু আছে কি?


24

আমার কাছে একটি অ্যাপ রয়েছে যা মারা যাবে না: এটি ডক থেকে চলে গেছে, তবে উইন্ডোটি রয়ে গেছে (সৈকতবলের সাথে, যদি আমি এটির উপরে মাউস রাখি)। এটি কোনও সিপিইউ ব্যবহার করছে না, তবে আমি এটিটি সরে যেতে চাই।

সত্যিই কোনও অ্যাপ্লিকেশনকে হত্যা করতে "ফোর্স ছাড়" এর চেয়ে শক্তিশালী কিছু আছে কি ?


এটি আরও শক্তিশালী কিনা তা সম্পর্কে আমি নিশ্চিত নই, তবে অ্যাপস> ইউটিলিটিস> ক্রিয়াকলাপ মনিটরের চেষ্টা করুন। প্রক্রিয়াটি সন্ধান করুন এবং জোর করে প্রস্থান করুন। যদি এটি কাজ না করে, প্রক্রিয়া নম্বরটি নোট করুন, টার্মিনালে যান এবং "কিল #" টাইপ করুন যেখানে # প্রক্রিয়া নম্বর। আছে HTH
ডেভিড DelMonte

6
পাওয়ার বাটন?
ড্যানিয়েল

1
@ ড্যানিয়েললসন দুর্ভাগ্যক্রমে, এই পরিস্থিতিতে সাধারণত ফলাফল হয়।
CajunLuke

1
ডেভিড: আমি ধরে নিয়েছি যে অ্যাপল যেভাবে "ফোর্স ছাড়ো" বলে ডাকে তা হ'ল আপনি এটির কাছে যাই আসুন না কেন, তবে আমি এটি চেষ্টাও করেছি, কোনও প্রভাব ফেলেনি।
কেন

উত্তর:


14

আপনি যদি অ্যাপটির নাম জানেন তবে এটি সেখানে এখনও চলছে কিনা তা দেখতে আপনি ক্রিয়াকলাপ মনিটরে চেক করতে পারেন এবং তার ফোর্স প্রস্থানটি চেষ্টা করে দেখতে পারেন। যদি এটি কাজ না করে তবে অ্যাপটির প্রক্রিয়া আইডি (পিড) নোট করুন। টার্মিনালে যান এবং টাইপ করুন kill [pid], "[পিড]" এর পরিবর্তে আপনি উল্লিখিত নম্বরটি দিয়ে। যদি এটি কাজ না করে, চেষ্টা করুন kill -3 [pid]এবং যদি এটি কাজ করে না kill -9 [pid]। প্রক্রিয়া (এই সম্ভবত নয়) একজন আলাদা ব্যবহারকারীতে মালিকানাধীন হয়, তাহলে আপনি প্রতিস্থাপন করার প্রয়োজন হতে পারে killসঙ্গে sudo killএবং অনুরোধ করা হলে আপনার পাসওয়ার্ড লিখুন।

যদি অ্যাক্টিভিটি মনিটরে অ্যাপ্লিকেশনটি প্রদর্শিত না হয় বা আপনি killএটি না করতে পারেন তবে উইন্ডোটি অন্য কোনও জায়গায় বাম-ওভার আটকে থাকতে পারে এবং অ্যাপ্লিকেশনটি আর চলছে না। এই ক্ষেত্রে, কখনও কখনও (সর্বদা নয়) এটি কাজ করতে পারে killall SystemUIServerবা করতে পারে killall Dock

যদি এর কোনওটিই কাজ না করে তবে আপনাকে লগ আউট করতে হবে এবং ফিরে যেতে হবে বা পুনরায় বুট করতে হবে। কয়েকবার আমি এই স্থানে পৌঁছেছি, অ্যাপ্লিকেশনটি এতটাই আটকে গিয়েছিল যে এটি লগ আউট বা বন্ধ করতে বাধা দেয়, তাই আমাকে পুনরায় বুট করতে হয়েছিল।


আমি এই সমস্তগুলি চেষ্টা করেছি (সহ sudo, প্রক্রিয়াটি আমার মালিকানাধীন হলেও), কোনও পরিবর্তন ছাড়াই। হবে killall SystemUIServerআমার অন্যান্য খোলা অ্যাপ্লিকেশানগুলি কোন প্রভাব ফেলে, উইন্ডোর অবস্থান বিস্মরণ মত?
কেন

2
হরমেটমেট: অনুসারে kill -l, -3 হ'ল সংকেত, এবং -9 হ'ল সিগ্কিল ("অ-ক্যাচব্যাবল, অজানা কিল")।
কেন

1
@gentmatt 3 হল কোয়েট সিগন্যাল যা প্রক্রিয়াটিকে সংকেতটিকে আটকানো এবং পরিষ্কার-পরিচ্ছন্নতা সম্পাদন করার ক্ষমতা দেয়। 9 হ'ল কেআইএল হ'ল "ছোঁয়াচে ও অজানা"। আপনি পাঠাতে পারেন এমন অন্যান্য সংকেতের একটি স্তূপ রয়েছে; man killতাদের সমস্ত দেখতে রান করুন (যা সর্বকালের সেরা দশ ইউনিক্স কমান্ডে রয়েছে) তাদের সমস্ত দেখতে see
CajunLuke

1
আমি সাধারণত খুন করি -9 করি। -3 "ফোর্স ছাড়" এর চেয়ে শক্তিশালী নয়
সেগফল্ট

3
@ বোটিয়ান ট্রু; আমি সরাসরি -9 এ চলে যাই। কখনও কখনও আমি ফোর্স ছাড়ার সাথে মোটেই বিরক্ত করি না। তবে এমন কোনও ব্যবহারকারী যা জানেন না যে তারা কী করছেন, এটি কাজ করতে পারে এবং ক্ষতিকারক হওয়ার সম্ভাবনা কম। এটি খুব বেশি সময় নেয় না, সুতরাং প্রত্যাশিত ফলাফলের অনুপাতের জন্য ব্যয় করা সময়টি এতটা খারাপ নয়।
CajunLuke

7

বলটি উইন্ডো ছেড়ে দেয় killall, এবং killসমস্ত প্রক্রিয়াকরণগুলি TERM সংকেতগুলি ডিফল্টরূপে প্রেরণ করে। killall -killযদি এটি কাজ না করে তবে আপনি ব্যবহার করতে পারেন ।

কিল্ল ইউটিলিটি নাম দ্বারা নির্বাচিত প্রক্রিয়াগুলিকে হত্যা করে, পিড দ্বারা কিল (1) দ্বারা নির্বাচনের বিপরীতে। ডিফল্টরূপে, এটি নাম প্রকোমের সাথে মেলে এমন কিলালের কলারের সাথে একটি প্রকৃত ইউআইডি সহ সমস্ত প্রক্রিয়াতে একটি TERM সংকেত প্রেরণ করবে। সুপার-ব্যবহারকারীর যেকোন প্রক্রিয়া মারার অনুমতি রয়েছে।

আপনি চালনা sudo dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'এবং ফোর্স ছাড়ার উইন্ডো থেকে কিছু অ্যাপ্লিকেশন ছেড়ে দিলে, সংকেতটি সাধারণত -15 (TERM) হিসাবে প্রদর্শিত হয়। তবে আপনি যখন কার্যকলাপ পর্যবেক্ষণ থেকে কোনও ব্যাকগ্রাউন্ড প্রক্রিয়া (বা কোনও অ্যাপ্লিকেশন যা ডকের মধ্যে প্রদর্শিত হয় না) ছেড়ে দেন, তখন সংকেতটি সাধারণত -9 (কেআইএলএল) হিসাবে প্রদর্শিত হয়।

সিগনটার্ম হ'ল কিল বা কিলাল আদেশ দ্বারা প্রসেসে প্রেরিত ডিফল্ট সংকেত। এটি কোনও প্রক্রিয়াটির সমাপ্তি ঘটায়, কিন্তু সিগ্কিল সিগন্যালের বিপরীতে, এটি প্রক্রিয়া দ্বারা ধরা এবং ব্যাখ্যা করা (বা উপেক্ষা করা) যেতে পারে। সুতরাং, সিগনটার্ম একটি প্রক্রিয়াটি সুন্দরভাবে শেষ করতে বলার অনুরূপ, ক্লিনআপ এবং ফাইলগুলি বন্ধ করার অনুমতি দেয়। এই কারণে, শাটডাউনের সময় অনেকগুলি ইউনিক্স সিস্টেমে, চাল বিদ্যুৎ বন্ধ করার জন্য অপরিহার্য নয় এমন সমস্ত প্রক্রিয়াগুলিতে সাইনগারম ইস্যু করে, কয়েক সেকেন্ড অপেক্ষা করে এবং তারপরে এই জাতীয় কোনও প্রক্রিয়া জোর করে বন্ধ করে দেওয়ার জন্য সিগাইলকে ইস্যু করে।


এখানে কিছু ভাল তথ্য, তবে প্রক্রিয়াটি হত্যার এই রূপগুলির কোনওটিরই তেমন কোনও প্রভাব আছে বলে মনে হয় না।
কেন

এমনকি যদি SIGKILLকাজ না করে, অ্যাপটি সম্ভবত নিরবচ্ছিন্ন ঘুমের মধ্যে রয়েছে এবং আপনি যা করতে পারেন তা কিছুই নেই (রিবুট করার সংক্ষিপ্ততা)।
ব্ল্যাকলাইট জ্বলজ্বল

খুব ভেবে দেখছি, এটি যদি কোনও মেইল.অ্যাপ বা পেজস.অ্যাপের মতো কোনও ব্যবহারকারী অ্যাপ্লিকেশন ছিল বা এটি কোনওভাবেই ছিল কিনা, স্পটলাইটের মতো একটি সিস্টেম প্রক্রিয়া, বা প্ল্যাক্সের মতো অ্যাপ্লিকেশন ব্যাকগ্রাউন্ড প্রক্রিয়া (যা আমাকে অপসারণ করতে সমস্যা হয়)।
ডেভিড ডেলমন্টে

6

আমার এমন পরিস্থিতি হয়েছিল যেখানে ফোর্স প্রস্থান, ক্রিয়াকলাপ পর্যবেক্ষণ kill, এবং অন্যান্য পদ্ধতিগুলি কাজ করে না এবং আমার ম্যাক এর কারণে শাটডাউন করতে পারেনি।

এই ক্ষেত্রে, একটি sudo shutdown -r nowকাজ করা যখন অন্য কিছুই না, এবং সম্ভবত পাওয়ার বোতামের মাধ্যমে হার্ড শাটডাউন করার চেয়ে ভাল।


1

উপরের উত্তরের মতো, যে কোনও প্রক্রিয়া বন্ধ করার সবচেয়ে শক্তিশালী উপায় হ'ল SIGKILLউদাঃ kill -9 process_id

তবে, এমন প্রক্রিয়াগুলি বিদ্যমান যা কেবল অসম্ভব এবং অসম্ভবও Force Quitনয় kill। তারা zombieপ্রক্রিয়া হিসাবে ডাকা হয় ।

এখানে একটি শর্ট স্ক্রিপ্ট যা zombieদুটি মিনিটের জন্য একটি প্রক্রিয়া তৈরি করবে :

perl -e 'if($p=fork) {print "unkillable pid:$p\n" ;system("ps -l"); sleep(120)}'

টার্মিনালে উপরের স্ক্রিপ্টটি চালনা করুন এবং পরবর্তী ফলাফলের মতো আপনি আউটপুট পাবেন:

     unkillable pid:50571
        UID   PID  PPID        F CPU PRI NI       SZ    RSS WCHAN     S             ADDR TTY           TIME CMD
        501 47380 47379     4006   0  31  0  2448416   2900 -      S                   0 ttys000    0:00.36 -bash
        501 50570 47380     4006   0  31  0  2443512   1424 -      S+                  0 ttys000    0:00.01 perl -e if($p=fork) {print "u
#THIS-> 501 50571 50570     2006   0   0  0        0      0 -      Z+                  0 ttys000    0:00.00 (perl)
        501 12795 12794     4006   0  31  0  2448296   1752 -      S+                  0 ttys001    0:00.75 -bash
        501 50123 50122     4006   0  31  0  2448296   2688 -      S+                  0 ttys002    0:00.14 -bash

আপনি যদি অযোগ্যযোগ্য প্রক্রিয়াটির জন্য স্থিতি কলামটি পরীক্ষা করেন (এই ক্ষেত্রে: 50571) আপনি Zপতাকাটি দেখতে পাচ্ছেন , এর অর্থ কি zombie

আপনি যেকোন killসিগন্যাল প্রেরণের চেষ্টা করতে পারেন (উদাঃ kill -9 50571) এবং প্রক্রিয়াটি এখনও বিদ্যমান থাকবে। যাইহোক, এটি আপনার সিস্টেমে খুব বেশি ক্ষতি করে না, কারণ এটি বাস্তবে বিদ্যমান নেই - কেবল প্রক্রিয়া সারণী দখল করে।

উপরের উদাহরণে, 120 সেকেন্ডের মধ্যে এটি সাফ হয়ে যাবে।


0

এটি আপনার করা উচিত:

  1. ক্রিয়াকলাপ মনিটরে, প্রক্রিয়াটিতে ডাবল ক্লিক করুন বা প্রক্রিয়াটির উইন্ডোটি খুলতে তথ্য আইকনে ক্লিক করুন।
  2. প্রসেস গ্রুপ লাইনে আপনি প্রক্রিয়া নাম হিসাবে (####) প্রক্রিয়াটি দেখতে পাবেন যেখানে "####" আপনার প্রক্রিয়াটির নম্বর।
  3. টার্মিনালটি খুলুন এবং উদ্ধৃতিগুলি ছাড়াই "সুডো কিল ####" টাইপ করুন এবং এন্টার টিপুন
  4. আপনার পাসওয়ার্ড লিখুন, টার্মিনাল এখানে আপনার ইনপুট প্রদর্শন করবে না
  5. প্রক্রিয়া নিহত হয়।

আপনি যদি একটি আনইনস্টল করার চেষ্টা করতে চলেছেন তবে এর মতো প্রক্রিয়াটি নিরাপদ মোডে সেরাভাবে সরিয়ে দেওয়া হয়।

চিয়ার্স, ব্রায়ান

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