svchost.exe چیست و چرا تعداد زیادی از آنها در حال اجرا هستند؟
اگر شما هم جزو کسانی هستید که از طریق Task Manager فعالیت های ویندوز خود را بررسی میکنید ممکن است با این صفحه روبروی شده باشید که تعداد زیادی Service Host در حال اجرا است. شما معمولا نمی توانید از برنامه ها را متوقف کنید، این در حالی است که حتی شما آنها را اجرا نکرده اید.
Service Host چیست؟
این دقیقا ترجمه جوابی است که مایکروسافت در وبسایت خود ارائه میدهد:
Svchost.exe یک نام فرآیند میزبان عمومی برای سرویس هایی است که از کتابخانه های پیوند پویا اجرا می شوند.
اما این توضیحات قطعا دقیق نیست و کمک خاصی به ما نخواهد کرد. . مدتی پیش، مایکروسافت شروع به تغییر بسیاری از عملکردهای ویندوز از تکیه بر سرویس های داخلی ویندوز که از فایل های EXE اجرا می شد به استفاده از فایل های DLL کرد. از منظر برنامه نویسی، این باعث می شود کد این قابلیت را داشته باشد که مجددا استفاده شود و احتمالاً به روز نگه داشتن آن آسان تر است. مشکل این است که شما نمی توانید یک فایل DLL را مستقیماً از ویندوز به همان روشی که یک فایل اجرایی را می توانید راه اندازی کنید. در عوض، پوسته ای که از یک فایل اجرایی بارگذاری می شود برای میزبانی این سرویس های DLL استفاده می شود. و بنابراین فرآیند Service Host (svchost.exe) متولد شد.
چرا چندین Service Host در حال اجرا هستند؟
اگر به لیست Service Host های در حال اجرا نگاهی بی اندازید قطعا متوجه می شوید که تعداد زیادی از این بسته ها در حال اجرا است. حالا علت آن چیست؟ دلیل قطعی این است که ویندوز برای اجرا به خدمات مختلفی نیاز دارد که دسترسی داشته باشد. حال اگر به هر دلیل ارتباط یا دسترسی یکی از این Service Host ها از بین برود به طور کل فعالیت اصلی ویندوز نیز متوقف خواهد شد در نتیجه مایکروسافت تصمیم گرفته که این بسته ها به طور جداگانه با یکدیگر فعالیت کنند.
سرویسها در گروههای منطقی سازماندهی میشوند که همه تا حدودی مرتبط هستند، و سپس یک نمونه Service Host برای میزبانی هر گروه ایجاد میشود. به عنوان مثال، یک فرآیند Service Host سه سرویس مربوط به فایروال را اجرا می کند. یکی دیگر از فرآیندهای میزبان سرویس ممکن است تمام فعالیت های رابط کاربری و … را اجرا کند. به عنوان مثال، در تصویر زیر می بینید که یک فرآیند Service Host چندین سرویس شبکه مرتبط را اجرا می کند.
بررسی سرویس های مرتبط را در Task Manager
اگر از ویندوز ۸ یا ۱۰ استفاده می کنید تمامی این فرایند ها در Task Manager در قسمتی به اسم Processes به طور کامل توضیح داده شده اند. این امر تشخیص اینکه کدام سرویس ها به هر نمونه از فرآیند Service Host تعلق دارند بسیار آسان می کند.
با کلیک راست کردن بر روی هر سرویس شما سه ویژگی زیر را مشاهده خواهید کرد. با کلیک بر روی گزینه Stop می توانید این خدمات را متوقف کنید. با کلیک روی گزینه Services آن خدمات را مشاهده کنید و در نهایت با گزینه search online اطلاعات مربوط به آن را در سطح اینترنت مشاهده کنید.
اگر از ویندوز ۷ استفاده می کنید، اوضاع کمی پیچیده تر است. Task Manager ویندوز ۷ پردازشها را بهصورت یکجا گروهبندی نمیکند، و همچنین نامهای فرآیند معمولی را نشان نمیدهد – فقط تمام نمونههای در حال اجرا «svchost.exe» را نشان میدهد.
در تب Processes بر روی گزینه svchost.exe کلیک راست کنید و گزینه Go to Service را بزنید.
این کار شما را به تب «Services» میبرد، جایی که سرویسهایی که تحت آن فرآیند «svchost.exe» اجرا میشوند را مشاهده خواهید کرد.
سپس میتوانید نام کامل هر سرویس را در ستون «Description» ببینید، بنابراین میتوانید انتخاب کنید که اگر نمیخواهید سرویس اجرا شود، آن را غیرفعال کنید.
جمع بندی
فرآیند Service Host (svchost.exe) برای بارگیری سرویس ها از فایل های DLL است. سرویسها در گروههایی سازماندهی میشوند و هر گروه در یک نمونه متفاوت از فرآیند میزبانی سرویس اجرا میشود. معمولاً نمونه های زیادی از svchost.exe در حال اجرا هستند زیرا ویندوز برای عملکرد صحیح به خدمات متعددی نیاز دارد. اگر در یادگیری این آموزش مشکلی داشتید حتما از بخش نظرات با ما در ارتباط باشید تا پاسخگویی سوالات شما باشیم.