কেন কখনও কখনও উইন্ডোজ একটি প্রক্রিয়া হত্যা করতে পারে না?


30

এই মুহূর্তে আমি ভিজ্যুয়াল স্টুডিওতে আমার অ্যাপ্লিকেশনটি চালানোর / ডিবাগ করার চেষ্টা করছি, তবে এটি তৈরি করতে পারে না কারণ এর শেষ উদাহরণটি app.vshost.exeএখনও চলছে। তারপরে, টাস্ক ম্যানেজারটি ব্যবহার করে আমি এটি হত্যা করার চেষ্টা করছি, তবে এটি কেবল ক্রিয়াকলাপের কোনও সংকেত ছাড়াই রয়ে গেছে।

সেই নির্দিষ্ট ক্ষেত্রে (সম্ভবত একটি ভিজ্যুয়াল স্টুডিও বাগ) এর বাইরেও আমি প্রযুক্তিগত কারণগুলি সম্পর্কে খুব কৌতূহল বোধ করি কেন কখনও কখনও উইন্ডোজ কোনও প্রক্রিয়া হত্যা করতে পারে না?

একটি আলোকিত ওএস সম্পর্কিত বিকাশকারী, কি ব্যাখ্যা করার চেষ্টা করবেন?

(এবং দয়া করে উইন্ডোজের বিরুদ্ধে ইউনিক্স / লিনাক্স / ম্যাক যুদ্ধ শুরু করবেন না))


10
যদি আমি কেবল এই প্রশ্নের উত্তর চেয়েছি প্রতিবারের জন্য যদি নিক ছিলাম ...
স্টিভেন অক্সলে

3
আমি উত্তরগুলির প্রশংসা করি, তবে আমি একটি অপারেটিং সিস্টেম বিকাশকারী পড়তে চাই যা ব্যাখ্যা করে যে এই যুগের কোনও ওএস কেন একটি নন-কোর / কার্নেল (বা যাহা বিশেষণ উপযুক্ত) প্রক্রিয়াটি হত্যা করতে পারে না। আমি বিশ্বাস করি যে 386 সাল থেকে একটি "রিং 0" (বা অন্য কিছু) অন্য কোনও কোডকে কিছু বিশেষ সুযোগ সুবিধা দিয়েছিল, তাই আমি মনে করি যে এটিই (ওএস) প্রক্রিয়াটি অন্যের উপর কর্তৃত্ব করে। হতে পারে আমি সম্পূর্ণ ভুল, কিন্তু প্রশ্নটি উত্তরহীন রয়ে গেছে।
নস্টর সানচেজ এ।

উত্তর:


21

কারণটি হ'ল কিছু প্রতিক্রিয়াবিহীন চালক যা অসম্পূর্ণ I / O অনুরোধগুলি চলছে।

মার্ক রাশিনোভিচের ব্লগ এন্ট্রি অযোগ্যযোগ্য প্রক্রিয়াগুলি দেখুন ( সংরক্ষণাগার )


এটি লিনাক্সেও ঘটে। X86 আর্কিটেকচারে 4 টি রিং রয়েছে, এর মধ্যে কেবল দুটি ব্যবহার করা হয়েছে (ইউজারস্পেসের জন্য 3 টি রিং, কার্নেলের জন্য রিং 0)। সুতরাং সবকিছুই হয় কার্নেল মোড বা ব্যবহারকারী স্থান যার মধ্যে কিছুই নেই nothing তবে, একটি সম্ভাব্য কর্মসূচী হ'ল "ইউজার-মোড" ড্রাইভার যা একটি ছোট নির্ভরযোগ্য কার্নেল-মোড স্টাবের উপর নির্ভর করে যা কেবলমাত্র ইউজারস্পেস কোড বলে। আমি বিশ্বাস করি উইন্ডোজের বেশিরভাগ মুদ্রণ এবং ইউএসবি ড্রাইভার হ'ল (গ্রাফিক্স ড্রাইভারগুলি উইন্ডোজ ৩.১ এ ব্যবহৃত হত), তবে ইউজারস্পেস একটি পারফরম্যান্স পেনাল্টি বহন করে।
লরেন্স

শিল্পটি (ইনটেল, এএমডি, এআরএম, ইত্যাদি) শেষ পর্যন্ত ব্যবহারকারীকে (তার নিজের ঝুঁকিতে) কোনও প্রক্রিয়া হত্যার প্রকৃত সামর্থ্য এবং একবার এবং চিরতরে এই সমস্যা থেকে মুক্তি পেতে "মেটা-রিং" তৈরি করতে পারেনি? ????
নস্টর সানচেজ এ।

16

একটি সম্ভাব্য কারণ: আপনি কোনও কাজটিকে ডিবাগারের সাথে সংযুক্ত করে হত্যা করতে পারবেন না।

কাজটি থামানোর একমাত্র উপায় হ'ল ডিবাগার থেকেই।


3
ডিবাগারটি সংযুক্ত রয়েছে এবং এটি কোন প্রক্রিয়াটি সংযুক্ত কিনা তা আমি কীভাবে আবিষ্কার করব? কারণ আমি কোনও ডিবাগিং করছি না তবে টাস্ক ম্যানেজারের সাথে নয়, সার্ভিস বন্ধ করার সময় নয়, সঙ্গে নয় না, টাস্কটি মারা যাবে taskkill /fনা wmic ... call terminate... এটি বলে চলেছে "ত্রুটি: পিড ওয়াই সহ এক্স প্রসেসটি শেষ করা যায়নি "এই কাজের কোনও চলমান দৃষ্টান্ত নেই" "
লুক

3

একটি কারণ হ'ল আপনার কাছে এটি মারার অনুমতি নেই। উদাহরণস্বরূপ, যদি প্রক্রিয়া প্রশাসক হিসাবে চলমান থাকে এবং আপনি একজন সাধারণ ব্যবহারকারী হন।


3

খুলুন প্রোপার্টি প্রকল্পের জন্য পৃষ্ঠা, এখানে যান ডিবাগ ট্যাব, এবং চেক "অপরিচালিত কোড ডিবাগিং সক্ষম করুন"। অথবা, হোস্ট প্রক্রিয়াটি ব্যবহারের জন্য বিকল্পটি চেক করুন।


2

যদি সর্বশেষ অ্যাপ্লিকেশন। Vshost.exe এখনও চলমান থাকে তবে কেবল ডিবাগারের সাথে সেই প্রক্রিয়াটির সাথে সংযুক্ত হন।

ডিবাগ-> AttachToProcess এর অধীনে মেনুতে পাওয়া উচিত তারপরে ঝুলন্ত প্রক্রিয়াটি চয়ন করুন এবং এটির সাথে সংযোগ স্থাপন করুন।


2

আমার একমাত্র ওএস-স্তরের বিকাশের অভিজ্ঞতা গ্রেড স্কুলে ছিল, তবে আমার সন্দেহ হচ্ছে যা ঘটছে তা হ'ল এটি (বা এরকম কিছু):

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

C:\Windows\system32>taskkill /pid 9564 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.

আপনি কি পিতামাতার উপর একই জিনিস চেষ্টা করার সিদ্ধান্ত নেবেন (আমার ক্ষেত্রে পিতা-মাতার ডিবাগার প্রক্রিয়া ছিল, এমএসভিএসমন.এক্সই), এটি একইভাবে ব্যর্থ হয়:

C:\Windows\system32>taskkill /pid 22520 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.
ERROR: The process with PID 22520 (child process of PID 13964) could not be
terminated.
Reason: There is no running instance of the task.

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

প্রক্রিয়া সংযুক্ত করতে অক্ষম। বর্তমান অবস্থায় একটি অপারেশন আইনী নয়।

ডিবাগারের মাধ্যমে আপনাকে অন্য কোনও দৃষ্টান্ত চালানো থেকে আটকাতে জম্বিগুলি এখনও যথেষ্ট পরিমাণে প্রক্রিয়া সারণীতে রয়েছে তবে আপনি সম্ভবত আইডিইর বাইরে অন্য কোনও সূচনা শুরু করতে পারেন।

এটি ভিএসকে একটি জম্বি প্রক্রিয়া তৈরি করার আরও সুনির্দিষ্ট সমস্যার সমাধান করে। তবে, জম্বি প্রক্রিয়াগুলি প্রায়শই মারা যায় না। ওয়েল, প্রায়শই উইন্ডোজ, কখনও কখনও লিনাক্সে, যতক্ষণ না আপনি সেগুলি শটগান দিয়ে গুলি করেন। নাকি তা বন্ধ ছিল? তবে মুলতুবি থাকা উইন্ডোজ আপডেটগুলির দুর্ঘটনাজনিত প্রয়োগ সম্পর্কে সতর্ক থাকুন।

আমি পূর্ববর্তী কয়েকটি উত্তরে উত্তেজিত হয়েছি যেগুলি ডিবাগারের সাথে সংযুক্ত হওয়ার পরামর্শ দিয়েছিল, তবে উপরেরটি আমি পেয়েছি ফলাফল। সুতরাং আমি আমার উত্তর জমা দিচ্ছি এবং প্রক্রিয়া সারণীটি পরিষ্কার করতে পুনরায় বুট করছি।


ধন্যবাদ, এটি অবশ্যই সেরা উত্তর যা আমার সমস্যার সাথে মেলে।
পাবলো

1

এখানে উদ্ধৃত কয়েকটি সরঞ্জামের একটি পরীক্ষার উত্তর হতে পারে?

https://stackoverflow.com/questions/49988/really-killing-a-process-in-windows

(এখনই আমি দেখতে পেলাম যে অন্য এক কম্পিউটারের উইন্ডোজ session সেশনের অধীনে অন্য ব্যবহারকারীর অধিবেশন থেকে (বা শংসাপত্রগুলি, আমি মনে করি) একমাত্র একাধিক সরঞ্জামই পিস্কিলই ছিল যা একটি ব্যবহারকারীর উইন্ডোজ session সেশনের অধীনে চলমান একটি প্রক্রিয়াটিকে হত্যা করতে পারে)



-1

আপনি যদি ডিবিগ প্রক্রিয়াটি ভিসি ব্যবহার করে থাকেন এবং আপনি এটি টাস্ক ম্যানেজারের সাহায্যে হত্যা করেন তবে ভিএস এটির সাথে ভালভাবে মোকাবেলা করতে পারে না।

সুতরাং ভিএস এখনও লক্ষ্য প্রক্রিয়াটি ডিবাগ করছে তবে আপনি কেবল ভিএস-এ স্টপ প্রক্রিয়া টিপতে পারবেন না ust জাস্ট আপনার ভিএস ছাড়ুন এবং আপনি আপনার প্রক্রিয়াটি প্রস্থান করতে দেখবেন।

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