কম অগ্রাধিকার সহ চালানোর জন্য উইন্ডোজ পরিষেবা প্রক্রিয়াটি কীভাবে কনফিগার করবেন?


17

টাস্ক ম্যানেজারের মাধ্যমে ম্যানুয়ালি প্রক্রিয়াটির অগ্রাধিকারটি পরিবর্তন না করে কোনও উইন্ডোজ পরিষেবা প্রক্রিয়া (যেমন স্কুইডএনটি, এসকিউএল সার্ভার, ইত্যাদি) কনফিগার করার কোনও উপায় আছে কি?


থ্রেড বা প্রক্রিয়াগুলির অগ্রাধিকার পরিবর্তন করা একটি খারাপ ধারণা সাধারণত যদি কোডটি অন্য কোনও অগ্রাধিকারে চালানোর জন্য না লেখা হয়। অগ্রাধিকার পরিবর্তন করা এড়ানোর জন্য সম্মতিযুক্ত বিষয়গুলির তালিকায় "অগ্রাধিকার বিপর্যয়" যুক্ত করে।
রিচার্ড

1
ওপি জিজ্ঞাসা করেনি এটি একটি ভাল ধারণা কিনা। ওপি জিজ্ঞাসা করেছিল যে এটি করা যায় কিনা, এবং কীভাবে । - অনুগ্রহ করে বিষয়টিতে থাকতে ভুলবেন না। 😉
BrainSlugs83

উত্তর:


11

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

যেহেতু আপনি ইতিমধ্যে চলমান প্রক্রিয়াটিতে অগ্রাধিকারটি সংশোধন করতে পারেন, তাই আপনার সেরা বেট হতে পারে এটি করার জন্য কোনও সরঞ্জাম ব্যবহার করা।

প্রক্রিয়া অগ্রাধিকারটি সংশোধন করার জন্য আমি মাইক্রোসফ্ট কমান্ড-লাইন সরঞ্জাম সম্পর্কে সচেতন নই, তবে "পিভি" কমান্ড-লাইনটিও http://www.teamcti.com/pview/prcview.htm এ উপলব্ধ, অগ্রাধিকার সেট করার জন্য একটি ফাংশন রয়েছে ।

pv -pb process-name.exe

এটি "প্রসেস-নেম.এক্সএই" কে "সাধারণের নীচে" অগ্রাধিকারে সেট করবে।

যদি আপনি "সাধারণ" অগ্রাধিকারে শুরু হওয়া প্রক্রিয়াটি পরিবর্তন না করেই বেঁচে থাকতে পারেন তবে আপনি প্রায়শই বার বার কাজ চালিয়ে যাওয়ার জন্য "তফসিলি কার্য" হিসাবে চালিত স্ক্রিপ্ট দিয়ে এটি করতে পারেন (পরিষেবাটি পাওয়ার ক্ষেত্রে যদি আপনি ফেরত)।

এটি একটি দ্রুত এবং নোংরা হ্যাক, তবে আমার কাজটি সম্পন্ন দ্রুত এবং নোংরা হ্যাকের কাছে জীবনের অনেক ভাগ্য আমার!


অ্যাপ্লিকেশনটি শুরু করতে কোনও ব্যাচ ফাইল চালান এবং তারপরে অ্যাপ্লিকেশনটি সরাসরি চালানো এবং তারপরে অগ্রাধিকার সেট করার জন্য অন্য কোনও কার্য চালানোর চেয়ে সম্ভবত একটি অল্প ঘুমের মধ্যে প্রক্রিয়াটির অগ্রাধিকার সেট করুন। চেষ্টা করেও সব কিছুর জন্য কাজ করবে না।
জন গার্ডেনিয়ার্স

3

উপরের উত্তরগুলি আমার পক্ষে কার্যকর হয়নি। আমি নিম্নলিখিত পাওয়ারশেল লিপি তৈরি করা শেষ করেছি:

ChangePriority.ps1

Get-WmiObject Win32_process -Filter 'name="ProcessName.exe"' | ForEach-Object {$_.SetPriority(128)}

এবং তারপরে আমি একটি নির্ধারিত টাস্ক তৈরি করেছি যা প্রতি 5 মিনিটে এটিকে কল করে। থেকে প্রশাসক প্রম্পট বা ব্যাচ স্ক্রিপ্ট:

schtasks /Create /tn "Process Priority Change" /sc MINUTE /mo 5 /ru SYSTEM /tr "powershell -noprofile -executionpolicy bypass -file \"%cd%\ChangePriority.ps1\""

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

পাওয়ারশেল স্ক্রিপ্টে অগ্রাধিকারের মানগুলি এখানে পাওয়া যাবে [1]।

[1] https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/setpriority-method-in-class-win32-process


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

@ জেসনএক্সএ আপনাকে স্বাগতম আপনি যদি এর একটি লাইন সংস্করণ সরবরাহ করতে পারেন তবে প্রশংসা করুন, যা আমি পারিনি
ceztko

অবশ্যই: পাওয়ারশেল.এক্সই -নোপ্রোফাইল-এক্সিকিউশনপলিসি বাইপাস -কম্যান্ড "এবং {গেম-ডাব্লুএমআইবজেক্ট Win32_service -Filter Name" নাম = 'অডিওস্রভ' \ "| ফ্রিচার {" প্রসেসআইড = প্রক্রিয়া _ Processআইডি {"। \ "} | ফর-প্রতিটি-অবজেক্ট {$ _। সেটপ্রাইরিটি (256)}}" জানি না এটি কতটা সঠিক ... তবে এটি কার্যকর works আমি এটি গোপনে কাজ করতে পরিচালিত হইনি, কেবল ডাব্লু / অ্যাডমিন গোপনীয়তার অধীনে কাজ করতে পারি।
জেসনএক্সএ

1

নিম্নলিখিত এছাড়াও কাজ করতে পারে। চিত্রপথ রেজিস্ট্রি কী সম্পাদনা করুন, এবং cmd.exe থেকে শুরু কমান্ডটি ব্যবহার করুন:

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [command/program]
      [parameters]

দুর্ভাগ্যক্রমে এটি মোটেও কার্যকর হয় না যেহেতু এক্সিকিউটেবল লঞ্চ করা ImagePathউচিত উইন্ডোজ পরিষেবাদির ইন্টারফেসের প্রতি সম্মান জানায়, এবং startএটি কার্যকর করে না এবং এটি কার্যকর করতে সক্ষম হওয়ার জন্য প্রবর্তন করে না।
ceztko

0

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

  1. স্টার্টআপ "ম্যানুয়াল" হিসাবে পরিষেবা সেট করুন।
  2. একটি ব্যাচ ফাইল তৈরি করুন, এটি আপনার পরিষেবাটি শুরু করবে এবং অগ্রাধিকারটিকে কম করবে, যেমন:

    নেট শুরু tcbuildagent
    নেট শুরু টিমসিটি ডাব্লুএমসি
    প্রক্রিয়া যেখানে নাম = "java.exe" সাধারণ সেট নীচে "কল করুন"

  3. "উইন্ডোজ স্টার্টআপ" এ ট্রিগারযুক্ত একটি "টাস্ক শিডিয়ুলার" কাজ তৈরি করুন, এটি সেই ব্যাচের ফাইলটি চালু করবে।

শুরু হওয়া অন্যান্য পরিষেবাদিতে হস্তক্ষেপ না করার জন্য, আমি 1 মিনিট বিলম্বের সাথে টাস্কশেল্ডার ট্রিগারটি কনফিগার করেছি।

PS আপনি আপনার সমস্ত পরিষেবাগুলির সূচনাটি ম্যানুয়াল হিসাবে সেট করতে পারেন এবং সেই ব্যাচ ফাইলটি আপনার সমস্ত ক্রম হিসাবে শুরু করতে ব্যবহার করতে পারেন! এসকিউএল, আইআইএস, ইত্যাদি


0

আপনি নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি এটিকে একটি নির্ধারিত টাস্কে রাখতে পারেন যা শুরুতে চলে।

do {
    start-sleep -s 5
    $obj = Get-WmiObject Win32_process -Filter 'name="processname"'
} while ($obj -eq $null)
$obj.SetPriority(16384)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.