விண்டோஸில் எந்தப் பயனரின் கீழ் சேவைகள் இயங்குகின்றன? விண்டோஸ் சேவைகள். சேவைகள் என்றால் என்ன

இயக்க முறைகள்

பெரும்பாலான சந்தர்ப்பங்களில், பயனர்களின் பணியகம் அல்லது டெஸ்க்டாப்புடன் (உள்ளூர் மற்றும் தொலைதூரத்தில்) தொடர்புகொள்வதில் இருந்து சேவைகள் தடைசெய்யப்பட்டுள்ளன, ஆனால் சில சேவைகளுக்கு விதிவிலக்கு சாத்தியம் - கன்சோலுடனான தொடர்பு (அமர்வு எண் 0, பயனர் உள்நாட்டில் பதிவுசெய்யப்பட்ட அல்லது போது சேவை தொடங்குகிறது mstsc/கன்சோல் சுவிட்ச் உடன்).

சேவைகளுக்கு பல முறைகள் உள்ளன:

  • ஏவுவது தடைசெய்யப்பட்டுள்ளது;
  • கையேடு தொடக்கம் (கோரிக்கையின் பேரில்);
  • கணினி துவங்கும் போது தானியங்கி தொடக்கம்;
  • தானியங்கி (தாமதமான) வெளியீடு (விண்டோஸ் விஸ்டா மற்றும் விண்டோஸ் சர்வர் 2008 இல் அறிமுகப்படுத்தப்பட்டது);
  • கட்டாய சேவை/இயக்கி (தானியங்கி தொடக்கம் மற்றும் இயலாமை (பயனருக்கு) சேவையை நிறுத்த).

பின்னணி முறை

விண்டோஸ் சேவைகளைத் தொடங்கவும், நிறுத்தவும் மற்றும் மாற்றவும்

சேவைகள் மற்றும் அவற்றின் பண்புகளை MMC இல் மாற்றலாம்:

வெவ்வேறு பதிப்புகளில் இயக்க முறைமைகள்சில சேவைகள் இருக்கலாம், மற்றவை இல்லாமல் இருக்கலாம். தனித்தனியாக நிறுவப்பட்ட சில பயன்பாடுகள் மற்றும் நிரல்களும் அவற்றின் சொந்த சேவைகளை உருவாக்கலாம்.

மைக்ரோசாப்ட் விண்டோஸ் இயக்க முறைமை சேவைகளின் பட்டியல்

காட்சி பெயர் சேவையின் பெயர் செயல்பாடுகள் விளக்கம்
DHCP கிளையன்ட் Dhcp இந்தக் கணினிக்கான IP முகவரிகள் மற்றும் DNS பதிவுகளைப் பதிவுசெய்து புதுப்பிக்கிறது. இந்தச் சேவை நிறுத்தப்பட்டால், இந்தக் கணினியால் டைனமிக் ஐபி முகவரிகளைப் பெற முடியாது மற்றும் டிஎன்எஸ் புதுப்பிப்புகளைச் செய்ய முடியாது.
டிஎன்எஸ் கிளையன்ட் டிஎன்ஸ்கேச் DNS கிளையண்ட் சேவை (dnscache) DNS (டொமைன் நேம் சிஸ்டம்) பெயர்களை தேக்கி, முழு தகுதியான பெயரை பதிவு செய்கிறது இந்த கணினியின். சேவை நிறுத்தப்பட்டால், DNS பெயர் தீர்மானம் தொடரும். இருப்பினும், DNS பெயர் வரிசைகளின் முடிவுகள் தேக்ககப்படுத்தப்படாது மற்றும் கணினியின் பெயர் பதிவு செய்யப்படாது.
விநியோகிக்கப்பட்ட பரிவர்த்தனை ஒருங்கிணைப்பாளருக்கான KtmRm KtmRm MSDTC மற்றும் கர்னல் பரிவர்த்தனை மேலாளர் (KTM) ஆகியவற்றுக்கு இடையேயான பரிவர்த்தனைகளை ஒருங்கிணைக்கிறது.
ரெடிபூஸ்ட் EMDMgmt ரெடிபூஸ்ட் ReadyBoost தொழில்நுட்பத்தைப் பயன்படுத்தி கணினி செயல்திறனை மேம்படுத்துவதற்கான ஆதரவு.
சூப்பர்ஃபெட்ச் SysMain சூப்பர்ஃபெட்ச் கணினி செயல்திறனைப் பராமரிக்கிறது மற்றும் மேம்படுத்துகிறது.
விண்டோஸ் ஆடியோ Audiosrv ஆடியோ கருவிகளை நிர்வகித்தல் விண்டோஸ் நிரல்கள். இந்தச் சேவை நிறுத்தப்பட்டால், ஆடியோ சாதனங்கள் மற்றும் விளைவுகள் சரியாக வேலை செய்யாது.
விண்டோஸ் கார்ட் ஸ்பேஸ் ஐடிஎஸ்விசி டிஜிட்டல் அடையாளங்களை உருவாக்க, நிர்வகிக்க மற்றும் வெளிப்படுத்தும் பாதுகாப்பான திறனை வழங்குகிறது.
தானியங்கி மேம்படுத்தல் WUAUSERV பதிவிறக்கம் மற்றும் நிறுவல் அடங்கும் விண்டோஸ் புதுப்பிப்புகள். சேவை முடக்கப்பட்டிருந்தால், இந்தக் கணினியில் உள்ள அம்சங்களை உங்களால் பயன்படுத்த முடியாது. தானியங்கி மேம்படுத்தல்அல்லது Windows Update இணையதளம்.

Microsoft பயன்பாடுகள் மற்றும் நிரல்களால் உருவாக்கப்பட்ட சேவைகளின் பட்டியல்

பிற உற்பத்தியாளர்களின் பயன்பாடுகள் மற்றும் நிரல்களால் உருவாக்கப்பட்ட சேவைகளின் பட்டியல்

மேலும் பார்க்கவும்

விண்டோஸ் சேவைகளின் பட்டியல்

இணைப்புகள்

  • pcs.suite101.com/article.cfm/index_of_services: Windows XP சேவைகளின் அட்டவணை - Windows XP இல் இயங்கும் சேவைகளின் அட்டவணை இயக்க முறைமை
  • ஒரு சேவையை எவ்வாறு அகற்றுவது விண்டோஸ் விஸ்டாஅல்லது விண்டோஸ் எக்ஸ்பி
  • விண்டோஸ் எக்ஸ்பி சேவைகள் (ரஷ்யன்)

விக்கிமீடியா அறக்கட்டளை. 2010.

பிற அகராதிகளில் "Windows Services" என்றால் என்ன என்பதைக் காண்க:

    Windows SharePoint Services (WSS) இலவச சேர்க்கைசெய்ய மைக்ரோசாப்ட் விண்டோஸ்சர்வர் 2003 மற்றும் 2008, பின்வரும் அம்சங்களுக்கான ஆதரவுடன் ஒரு முழு அம்சம் கொண்ட இணைய தளத்தை செயல்படுத்துகிறது: உள்ளடக்க மேலாண்மை அமைப்பு ஒத்துழைப்பு கருவிகள்... ... விக்கிபீடியா

    டெவலப்பர் மைக்ரோசாப்ட் விண்டோஸ் ஓஎஸ் குடும்பம் ... விக்கிபீடியா

    மைக்ரோசாப்ட் விண்டோஸ் கூறு ... விக்கிபீடியா


விண்டோஸ் என்டி சேவை என்பது ஒரு சிறப்பு செயல்முறையாகும், இது இயக்க முறைமையுடன் தொடர்புகொள்வதற்கான ஒருங்கிணைந்த இடைமுகத்தைக் கொண்டுள்ளது விண்டோஸ் அமைப்புஎன்.டி. சேவைகள் இரண்டு வகைகளாகப் பிரிக்கப்பட்டுள்ளன - Win32 சேவைகள், சேவைக் கட்டுப்பாட்டு மேலாளர் (SCM) மூலம் இயக்க முறைமையுடன் தொடர்பு கொள்ளும் மற்றும் இயக்கி நெறிமுறையைப் பயன்படுத்தி செயல்படும் இயக்கிகள். விண்டோஸ் சாதனங்கள்என்.டி. இந்த கட்டுரையில் Win32 சேவைகளை மட்டுமே நாங்கள் விவாதிப்போம்.

சேவைகளின் பயன்பாடு

சேவையின் மிக முக்கியமான பண்புகளில் ஒன்று ஊடாடாதது. ஒரு வழக்கமான சேவையானது சராசரி பயனரால் கவனிக்கப்படாமல் பின்னணியில் இயங்குகிறது. இதன் காரணமாக, பின்வரும் வகையான பயன்பாடுகளை செயல்படுத்துவதற்கு சேவைகள் மிகவும் பொருத்தமானவை:

  • கிளையன்ட்-சர்வர் கட்டமைப்பில் உள்ள சேவையகங்கள் (எடுத்துக்காட்டாக, MS SQL, MS Exchange Server)
  • வலைப்பின்னல் விண்டோஸ் சேவைகள் NT (சேவையகம், பணிநிலையம்);
  • விநியோகிக்கப்பட்ட பயன்பாடுகளின் சர்வர் (செயல்பாட்டின் அடிப்படையில்) கூறுகள் (எடுத்துக்காட்டாக, அனைத்து வகையான கண்காணிப்பு திட்டங்கள்).

சேவைகளின் அடிப்படை பண்புகள்

இந்த சேவையானது வழக்கமான Win32 பயன்பாட்டிலிருந்து 3 முக்கிய பண்புகளால் வேறுபடுகிறது. அவை ஒவ்வொன்றையும் பார்ப்போம்.

முதலாவதாக, சேவையை சரியாக நிறுத்த (இடைநிறுத்த) முடியும். நிலையான பொறிமுறைகளைப் பயன்படுத்தும் ஒரு பயனர் அல்லது பிற பயன்பாடு ஒரு சேவையின் நிலையை மாற்றும் திறனைக் கொண்டுள்ளது - அதை இயங்கும் நிலையில் இருந்து இடைநிறுத்தப்பட்ட நிலைக்கு நகர்த்தவும் அல்லது இயங்குவதை நிறுத்தவும். இந்த வழக்கில், அதன் நிலையை மாற்றுவதற்கு முன், சேவை ஒரு சிறப்பு அறிவிப்பைப் பெறுகிறது, அதற்கு நன்றி புதிய மாநிலத்திற்கு மாறுவதற்கு தேவையான செயல்களைச் செய்ய முடியும், எடுத்துக்காட்டாக, ஆக்கிரமிக்கப்பட்ட வளங்களை வெளியிடுங்கள்.

இரண்டாவதாக, பயனரைப் பதிவு செய்வதற்கு முன் சேவையைத் தொடங்கும் திறன் மற்றும் அதன் விளைவாக, பதிவுசெய்யப்பட்ட பயனர் இல்லாமல் வேலை செய்யும் திறன். இயக்க முறைமை தொடங்கும் போது எந்தவொரு சேவையும் தானாகவே தொடங்கப்பட்டு, பயனர் கணினியில் உள்நுழைவதற்கு முன்பே செயல்படத் தொடங்கும்.

இறுதியாக, தன்னிச்சையான பாதுகாப்பு சூழலில் வேலை செய்யும் திறன். சூழல் விண்டோஸ் பாதுகாப்புபல்வேறு கணினி பொருள்கள் மற்றும் தரவுகளுக்கான செயல்முறை அணுகல் உரிமைகளின் தொகுப்பை NT வரையறுக்கிறது. ஒரு வழக்கமான Win32 பயன்பாட்டைப் போலல்லாமல், தற்போது கணினியில் உள்நுழைந்துள்ள பயனரின் பாதுகாப்பு சூழலில் எப்போதும் இயங்கும், ஒரு சேவைக்கு அதன் செயல்பாட்டின் பாதுகாப்பு சூழலை முன்கூட்டியே தீர்மானிக்க முடியும். இதன் பொருள், ஒரு சேவையானது கணினிப் பொருள்களுக்கான அணுகல் உரிமைகளை முன்கூட்டியே வரையறுக்கலாம், அதன் மூலம் அதன் செயல்பாடுகளின் வரம்பைக் கட்டுப்படுத்தலாம். சேவைகளுக்கு, லோக்கல் சிஸ்டம் எனப்படும் சிறப்பு வகையான இயல்புநிலை பாதுகாப்பு சூழல் உள்ளது. இந்த சூழலில் இயங்கும் ஒரு சேவைக்கு உள்ளூர் கணினியில் உள்ள ஆதாரங்களுக்கு மட்டுமே உரிமை உண்டு. லோக்கல் சிஸ்டம் உரிமைகளுடன் எந்த நெட்வொர்க் செயல்பாடுகளும் செய்ய முடியாது, ஏனெனில் இந்த சூழல் மட்டுமே அர்த்தமுள்ளதாக இருக்கும் உள்ளூர் கணினிநெட்வொர்க்கில் உள்ள பிற கணினிகளால் அங்கீகரிக்கப்படவில்லை.

பிற பயன்பாடுகளுடன் சேவையின் தொடர்பு

பொருத்தமான உரிமைகளைக் கொண்ட எந்தவொரு பயன்பாடும் சேவையுடன் தொடர்பு கொள்ளலாம். தொடர்பு, முதலில், சேவையின் நிலையை மாற்றுவதை உள்ளடக்குகிறது, அதாவது, அதை மூன்று மாநிலங்களில் ஒன்றிற்கு மாற்றுவது - இயங்குதல் (தொடக்கம்), இடைநிறுத்தம் (இடைநிறுத்தம்), நிறுத்துதல் மற்றும் SCM கோரிக்கைகளைச் சமர்ப்பிப்பதன் மூலம் மேற்கொள்ளப்படுகிறது. கோரிக்கைகள் மூன்று வகைகளாகும் - சேவைகளிலிருந்து வரும் செய்திகள் (அவற்றின் நிலைகளை சரிசெய்தல்), சேவையின் உள்ளமைவை மாற்றுவது அல்லது அதைப் பற்றிய தகவல்களைப் பெறுவது தொடர்பான கோரிக்கைகள் மற்றும் சேவையின் நிலையை மாற்றுவதற்கான விண்ணப்பக் கோரிக்கைகள்.

ஒரு சேவையை நிர்வகிக்க, முதலில் OpenService Win32 API செயல்பாட்டைப் பயன்படுத்தி அதன் கைப்பிடியைப் பெற வேண்டும். StartService செயல்பாடு ஒரு சேவையைத் தொடங்குகிறது. தேவைப்பட்டால், ControlService செயல்பாட்டை அழைப்பதன் மூலம் சேவையின் நிலை மாற்றப்படும்.

சேவை தரவுத்தளம்

ஒவ்வொரு சேவையைப் பற்றிய தகவல்களும் பதிவேட்டில் சேமிக்கப்படும் - HKLM\SYSTEM\CurrentControlSet\Services\ServiceName விசையில். இது பின்வரும் தகவல்களைக் கொண்டுள்ளது:

  • சேவை வகை. இந்தப் பயன்பாடு ஒரே ஒரு சேவையை (பிரத்தியேகமாக) செயல்படுத்துகிறதா அல்லது பயன்பாட்டில் அவற்றில் பல உள்ளதா என்பதைக் குறிக்கிறது. ஒரு பிரத்தியேக சேவை எந்த பாதுகாப்பு சூழலிலும் செயல்பட முடியும். ஒரே பயன்பாட்டில் உள்ள பல சேவைகள் LocalSystem சூழலில் மட்டுமே இயங்க முடியும்.
  • துவக்க வகை. தானியங்கி - கணினி தொடக்கத்தில் சேவை தொடங்குகிறது. தேவைக்கேற்ப - சேவையானது பயனரால் கைமுறையாகத் தொடங்கப்படுகிறது. செயலிழக்கப்பட்டது - சேவையைத் தொடங்க முடியாது.
  • இயங்கக்கூடிய தொகுதியின் பெயர் (EXE கோப்பு).
  • பிற சேவைகள் தொடர்பான தொடக்க ஆர்டர். சில சந்தர்ப்பங்களில், ஒரு சேவை சரியாகச் செயல்பட, ஒன்று அல்லது அதற்கு மேற்பட்ட பிற சேவைகள் இயங்க வேண்டும். இந்த வழக்கில், பதிவேட்டில் இதற்கு முன் தொடங்கப்பட்ட சேவைகள் பற்றிய தகவல்கள் உள்ளன.
  • சேவை செயல்படுத்தல் பாதுகாப்பு சூழல் ( நெட்வொர்க் பெயர்மற்றும் கடவுச்சொல்). முன்னிருப்பாக, பாதுகாப்பு சூழல் LocalSystem ஆகும்.

சேவையைப் பற்றிய தகவலை மீட்டெடுக்க அல்லது சேவை அமைப்பை மாற்ற விரும்பும் பயன்பாடுகள் பதிவேட்டில் உள்ள சேவையின் தரவுத்தளத்தில் உள்ள தகவலை மாற்ற வேண்டும். தொடர்புடைய Win32 API செயல்பாடுகளைப் பயன்படுத்தி இதைச் செய்யலாம்:

  • OpenSCManager, CreateService, OpenService, CloseServiceHandle - ஒரு சேவையை உருவாக்க (திறக்க);
  • QueryServiceConfig, QueryServiceObjectSecurity, EnumDependentServices, EnumServicesStatus - சேவையைப் பற்றிய தகவல்களைப் பெற;
  • ChangeServiceConfig, SetServiceObjectSecurity, LockServiceDatabase, UnlockServiceDatabase, QueryServiceLockStatus - சேவை உள்ளமைவு தகவலை மாற்ற.

சேவையின் உள் அமைப்பு.

இது நடக்க, பயன்பாடு அதற்கேற்ப கட்டமைக்கப்பட வேண்டும், அதாவது, ஒரு குறிப்பிட்ட செயல்பாட்டுடன் ஒரு குறிப்பிட்ட செயல்பாடுகளை (C++ விதிமுறைகளில்) சேர்க்க வேண்டும். அவை ஒவ்வொன்றையும் சுருக்கமாகப் பார்ப்போம்.

முக்கிய செயல்பாடு

உங்களுக்கு தெரியும், முக்கிய செயல்பாடு எந்த Win32 கன்சோல் பயன்பாட்டின் நுழைவு புள்ளியாகும். சேவை தொடங்கும் போது, ​​இந்தச் செயல்பாட்டிற்கான குறியீடு முதலில் இயங்கத் தொடங்குகிறது. தொடக்கத்தில் இருந்து 30 வினாடிகளுக்குள், பயன்பாட்டிற்கும் SCM க்கும் இடையே இணைப்பை ஏற்படுத்த, முக்கிய செயல்பாடு StartServiceCtrlDispatcher ஐ அழைக்க வேண்டும். கொடுக்கப்பட்ட பயன்பாட்டில் உள்ள எந்தவொரு சேவைக்கும் SCM க்கும் இடையிலான அனைத்து தகவல்தொடர்புகளும் StartServiceCtrlDispatcher செயல்பாட்டிற்குள் மேற்கொள்ளப்படுகின்றன, இது பயன்பாட்டில் உள்ள அனைத்து சேவைகளும் நிறுத்தப்பட்ட பின்னரே நிறுத்தப்படும்.

சேவை முதன்மை செயல்பாடு

செயல்முறை அளவிலான நுழைவுப் புள்ளியுடன் கூடுதலாக, பயன்பாட்டில் செயல்படுத்தப்படும் ஒவ்வொரு சேவைகளுக்கும் தனி நுழைவுப் புள்ளியும் உள்ளது. StartServiceCtrlDispatcher ஐ அழைக்கும் போது, ​​சேவை நுழைவு புள்ளிகளான செயல்பாடுகளின் பெயர்கள் (எளிமைக்காக, அனைத்தையும் ஒரே மாதிரியாக அழைப்போம் - ServiceMain) SCM க்கு ஒரு அளவுருவில் அனுப்பப்படும். ஒவ்வொரு சேவையும் தொடங்கும் போது, ​​ServiceMain ஐ இயக்க தனி நூல் உருவாக்கப்படும்.

கட்டுப்பாட்டைப் பெற்ற பிறகு, ServiceMain முதலில் விண்ணப்பத்தில் உள்ள ஒவ்வொரு சேவைக்கும் ஒரு சேவை கோரிக்கை ஹேண்ட்லரை, ஹேண்ட்லர் செயல்பாட்டைப் பதிவு செய்ய வேண்டும். இது பொதுவாக சர்வீஸ்மெயினில் சேவையைத் தொடங்க சில செயல்களால் பின்பற்றப்படுகிறது - நினைவகத்தை ஒதுக்கீடு செய்தல், தரவுகளைப் படித்தல் போன்றவை. இந்தச் செயல்களுடன் சேவை இன்னும் தொடங்கும் நிலையில் உள்ளது மற்றும் தோல்விகள் எதுவும் ஏற்படவில்லை என்ற SCM அறிவிப்புகளுடன் இருக்க வேண்டும். SetServiceStatus செயல்பாட்டிற்கான அழைப்புகளைப் பயன்படுத்தி அறிவிப்புகள் அனுப்பப்படுகின்றன. கடைசி அழைப்பு தவிர அனைத்து அழைப்புகளும் SERVICE_START_PENDING அளவுருவுடன் இருக்க வேண்டும், மேலும் சமீபத்திய அழைப்பு SERVICE_RUNNING அளவுருவுடன் இருக்க வேண்டும். அழைப்புகளின் அதிர்வெண் பின்வரும் நிபந்தனையின் அடிப்படையில் சேவை உருவாக்குநரால் தீர்மானிக்கப்படுகிறது: இரண்டு அருகிலுள்ள SetServiceStatus அழைப்புகளுக்கு இடையிலான நேர இடைவெளியின் காலம், இரண்டு அழைப்புகளில் முதல் அழைப்புகளின் போது SCM க்கு அனுப்பப்பட்ட dwWaitHint அளவுருவின் மதிப்பை விட அதிகமாக இருக்கக்கூடாது. இல்லையெனில், SCM, சரியான நேரத்தில் அடுத்த அறிவிப்பைப் பெறவில்லை, சேவையை வலுக்கட்டாயமாக நிறுத்தும். சில தோல்விகளின் விளைவாக சேவையின் நிலைமையைத் தவிர்க்க இந்த முறை உங்களை அனுமதிக்கிறது. வழக்கமான நடைமுறை என்னவென்றால், அடுத்த துவக்கப் படி முடிந்ததும் SCMக்கு அறிவிக்கப்படும்.

கையாளுதல் செயல்பாடு

மேலே குறிப்பிட்டுள்ளபடி, ஹேண்ட்லர் என்பது ஒரு கால்பேக் செயல்பாட்டின் முன்மாதிரி, ஒரு சேவை கோரிக்கை ஹேண்ட்லர், பயன்பாட்டில் உள்ள ஒவ்வொரு சேவைக்கும் தனித்துவமானது. சேவையானது கோரிக்கையைப் பெறும்போது (தொடக்கம், இடைநிறுத்தம், மறுதொடக்கம், நிறுத்து, தற்போதைய நிலை செய்தி) மற்றும் கோரிக்கைக்கு ஏற்ப தேவையான செயல்களைச் செய்யும் போது ஹேண்ட்லர் அழைக்கப்படுகிறார், அதன் பிறகு அது புதிய நிலையை SCM க்கு தெரிவிக்கும்.

ஒரு கோரிக்கையை குறிப்பாக கவனிக்க வேண்டும் - கணினியை மூடும்போது பெறப்பட்ட கோரிக்கை (பணிநிறுத்தம்). இந்த கோரிக்கையானது டீனிஷியலைஸ் மற்றும் நிறுத்தப்பட வேண்டியதன் அவசியத்தைக் குறிக்கிறது. மைக்ரோசாப்ட் ஒவ்வொரு சேவையையும் நிறுத்துவதற்கு 20 வினாடிகள் கொடுக்கப்பட்டதாக கூறுகிறது. இருப்பினும், சோதனைகள் இந்த நிபந்தனை எப்போதும் பூர்த்தி செய்யப்படுவதில்லை என்பதைக் காட்டுகின்றன, மேலும் இந்த காலம் காலாவதியாகும் முன் சேவை நிறுத்தப்பட வேண்டிய கட்டாயத்தில் உள்ளது.

சேவை பாதுகாப்பு அமைப்பு

சேவைகள் மீதான எந்தவொரு செயலுக்கும் பயன்பாட்டிற்கு பொருத்தமான உரிமைகள் இருக்க வேண்டும். அனைத்து பயன்பாடுகளுக்கும் SCM உடன் இணைக்க, சேவைகளை கணக்கிட மற்றும் சேவை தரவுத்தளம் தடுக்கப்பட்டுள்ளதா என சரிபார்க்க உரிமை உள்ளது. நிர்வாக உரிமைகள் உள்ள பயன்பாடுகள் மட்டுமே கணினியில் ஒரு புதிய சேவையை பதிவு செய்யலாம் அல்லது சேவை தரவுத்தளத்தைத் தடுக்கலாம்.

ஒவ்வொரு சேவைக்கும் ஒரு பாதுகாப்பு விவரிப்பான் உள்ளது, அது எந்தப் பயனர்களுக்கு எந்தச் செயல்பாட்டிற்கு உரிமை உள்ளது என்பதை விவரிக்கிறது. இயல்புநிலை:

  • அனைத்து பயனர்களுக்கும் SERVICE_QUERY_CONFIG, SERVICE_QUERY_STATUS, SERVICE_ENUMERATE_DEPENDENTS, SERVICE_INTERROGATE மற்றும் SERVICE_USER_DEFINED_CONTROL உரிமைகள் உள்ளன;
  • பவர் யூசர்ஸ் குழு மற்றும் லோக்கல் சிஸ்டம் கணக்கைச் சேர்ந்த பயனர்கள் கூடுதலாக SERVICE_START, SERVICE_PAUSE_CONTINUE மற்றும் SERVICE_STOP உரிமைகளைக் கொண்டுள்ளனர்;
  • நிர்வாகிகள் மற்றும் சிஸ்டம் ஆபரேட்டர் குழுக்களைச் சேர்ந்த பயனர்களுக்கு SERVICE_ALL_ACCESS உரிமை உள்ளது.

சேவைகள் மற்றும் ஊடாடுதல்

இயல்பாக, ஊடாடும் சேவைகளை LocalSystem பாதுகாப்பு சூழலில் மட்டுமே இயக்க முடியும். இது Windows NT இல் உள்ள மானிட்டர் திரையில் காண்பிக்கப்படுவதன் தனித்தன்மையின் காரணமாகும், எடுத்துக்காட்டாக, "டெஸ்க்டாப்" போன்ற ஒரு பொருள் உள்ளது, அதனுடன் வேலை செய்ய உங்களுக்கு பொருத்தமான அணுகல் உரிமைகள் இருக்க வேண்டும், இது ஒரு தன்னிச்சையான பொருள் இல்லாமல் இருக்கலாம். வேண்டும். கணக்கு, லோக்கல் சிஸ்டம் தவிர. பெரும்பாலான சந்தர்ப்பங்களில் இந்த வரம்பு குறிப்பிடத்தக்கதாக இல்லை என்ற போதிலும், சில நேரங்களில் மானிட்டர் திரையில் தகவலைக் காண்பிக்கும் ஒரு சேவையை உருவாக்க வேண்டிய அவசியம் உள்ளது, அதே நேரத்தில் LocalSystem அல்லாத பாதுகாப்பு சூழலில் செயல்படுத்தப்படும். எடுத்துக்காட்டாக, தொலை கணினியில் பயன்பாடுகளை இயக்குவதற்கான பயன்பாட்டு சேவையக கூறு.

இலிருந்து குறியீடு துணுக்கு. இந்த சாத்தியத்தை விளக்குகிறது.

இந்த துண்டில், RPC விளைவாக பயன்பாட்டின் கிளையன்ட் தரப்பால் அனுப்பப்பட்ட கோரிக்கைக்கு பதிலளிக்கும் விதமாக, சேவையானது மானிட்டர் திரையில் ஒரு உரைச் செய்தியைக் காட்டுகிறது.

எடுத்துக்காட்டு சேவை (முக்கிய துணுக்குகள்)

Windows NT சேவையை செயல்படுத்தும் C++ இல் உள்ள பயன்பாட்டின் முக்கிய துண்டுகளின் உதாரணத்தைப் பார்ப்போம். தெளிவுக்காக, குறியீட்டின் அத்தியாவசியமற்ற பகுதிகள் தவிர்க்கப்பட்டுள்ளன.

முக்கிய செயல்பாடு

முக்கிய செயல்பாட்டுக் குறியீடு B இல் காட்டப்பட்டுள்ளது.

சேவை முதன்மை செயல்பாடு

சர்வீஸ்மெயினில் உள்ள குறியீட்டின் அம்சம் என்னவென்றால், ஒரு குறிப்பிட்ட செயல்பாட்டின் செயல்பாட்டின் நேரத்தை முன்கூட்டியே கணிப்பது பெரும்பாலும் சாத்தியமற்றது, குறிப்பாக அதன் செயல்படுத்தல் ஒரு இயக்க முறைமையில் முன்கூட்டியே பல்பணியுடன் நிகழ்கிறது. SetServiceStatus அழைப்பு அளவுருவில் குறிப்பிடப்பட்ட நேர இடைவெளியை விட செயல்பாடு அதிக நேரம் எடுத்தால், சேவையால் அடுத்த அறிவிப்பை சரியான நேரத்தில் அனுப்ப முடியாது, இதனால் SCM அதன் செயல்பாட்டை நிறுத்தும். சாத்தியமான செயல்பாடுகளின் எடுத்துக்காட்டுகள் நெட்வொர்க்கிங் செயல்பாடுகளுக்கான அழைப்புகள், அதிக நேரம் முடிந்துவிட்டன அல்லது ஒரு முறை படிக்கலாம் பெரிய அளவுமெதுவான ஊடகத்திலிருந்து தகவல். கூடுதலாக, ஒரு சேவையை பிழைத்திருத்தம் செய்யும் போது இந்த அணுகுமுறை முற்றிலும் பொருந்தாது, ஏனெனில் பிழைத்திருத்தத்தில் நிரலை இயக்குவது டெவலப்பருக்கு தேவையான நீண்ட இடைநிறுத்தங்களுடன் இருக்கும்.

இந்தச் சிக்கலைச் சமாளிக்க, SCM உடன் தொடர்பு கொள்ளும் அனைத்து செயல்பாடுகளும் ஒரு தனி நூலில் செய்யப்பட வேண்டும், இது துவக்க கட்டத்தில் நிகழும் செயல்களைப் பொருட்படுத்தாது.

துணை நூலைப் பயன்படுத்தி ஒரு சேவையை சரியாகத் தொடங்குவதற்கான அல்காரிதத்தை B காட்டுகிறது.

கையாளுதல் செயல்பாடு

பி ஹேண்ட்லர் செயல்பாடு மற்றும் துணை நூல்களுக்கான குறியீட்டைக் காட்டுகிறது. "நிறுத்து" மற்றும் "பணிநிறுத்தம்" கோரிக்கைகளுக்கு, சேவையைத் தொடங்கும் போது பயன்படுத்தியதைப் போன்றே, சேவையை சரியாக நிறுத்துவதற்கான அல்காரிதம் பயன்படுத்தப்படுகிறது, SERVICE_START_PENDING அளவுருவுக்குப் பதிலாக, SERVICE_STOP_PENDING அளவுரு SetserviceStatus க்கு அனுப்பப்பட்டது. SERVICE_RUNNING - SERVICE_STOPPED.

வெறுமனே, "இடைநிறுத்தம்" மற்றும் "தொடரவும்" கோரிக்கைகளும் இந்த அணுகுமுறையைப் பயன்படுத்த வேண்டும். இந்த எடுத்துக்காட்டுகளின் அடிப்படையில் ஒரு ஆர்வமுள்ள வாசகர் அதை எளிதாக செயல்படுத்த முடியும்.

முடிவுரை

முடிவில், விண்டோஸ் என்டி 2000 க்கு மாறும்போது சேவைகளின் வளர்ச்சி மாறவில்லை என்பதை நாங்கள் கவனிக்க விரும்புகிறோம். விண்டோஸ் இயங்குதளத்தில் மென்பொருளின் முக்கிய பகுதியாக சேவைகள் தொடர்ந்து உள்ளன, இது டெவலப்பர்களுக்கு பரந்த அளவிலான விருப்பங்களை வழங்குகிறது.


// MessageBox Win32 API int ServerMessageBox (RPC_BINDING_HANDLE h, LPSTR lpszText, LPSTR lpszTitle, UINT ஃபுஸ்டைல்) போன்ற செயல்பாடு kUser; முழு முடிவு; // தற்போதைய பொருள்களை நினைவில் கொள்க "W உள்நிலை நிலையம் "மற்றும் "டெஸ்க்டாப்". GetDesktopWindow(); hwinstaSave = GetProcessWindowStation(); dwThreadId = GetCurrentThreadId(); hdeskSave = GetThreadDesktop(dwThreadDesktop(dwThreadId); // RPC ஐ அழைக்கும் RPC ஐ அழைக்கும் சூழலுக்கு // RPC ஐ மாற்றவும். மற்றும் பயனர் // ஆப்ஜெக்ட்களான "விண்டோ ஸ்டேஷன்" மற்றும் "டெஸ்க்டாப்" க்கான அணுகலைப் பெறுங்கள். RpcImpersonateClient(h); hwinstaUser = OpenWindowStation("WinSta0", FALSE, MAXIMUM_ALLOWED); என்றால் (hwinstaUser == NULL) (RpcfRevert);To RpcfRevert); ) SetProcessWindowStation(hwinstaUser); hdeskUser = OpenDesktop("Default", 0, FALSE, MAXIMUM_ALLOWED); RpcRevertToSelf(); என்றால் (hdeskUser == NULL) (SetProcessSwin(Windows); திரும்ப 0; ) SetThreadDesktop(hdeskUser); // வழக்கமான உரை சாளரத்தைக் காண்பி. முடிவு = MessageBox(NULL, lpszText, lpszTitle, fuStyle); // சேமித்த பொருட்களை மீட்டமை // "சாளர நிலையம்" மற்றும் "டெஸ்க்டாப்". SetThreadDesktop(hdeskSave); SetProcessWindowStation(hwinstaSave); CloseDesktop(hdeskUser); CloseWindowStation(hwinstaUser); திரும்பும் முடிவு; ) void main() (SERVICE_TABLE_ENTRY steTable = ( (SERVICENAME, ServiceMain), (NULL, NULL) ); // SCM உடன் இணைப்பை நிறுவவும். இந்தச் செயல்பாட்டிற்குள் // கோரிக்கைகள் பெறப்பட்டு அனுப்பப்படும். StartServiceCtrlDispatcher) (steTable); ServiceMain (DWORD dwArgc, LPSTR *psArgv) ( // கோரிக்கை கையாளுபவரை உடனடியாக பதிவு செய்யவும். hSS = RegisterServiceCtrlHandler(SERVICENAME, ServiceHandler); sStatus.dwCheckPoint = 0; sStatus.dwCcept_SPATCE_SOPATCE_ USE_CONTINUE; sStatus.dwServiceSpecificExitC ode = 0;sStatus. dwServiceType = SERVICE_WIN32_OWN_PROCESS ; sStatus.dwWaitHint = 0; sStatus.dwWin32ExitCode = NOERROR; // சேவையைத் தொடங்க, InitService() செயல்பாடு // துவக்கச் செயலியை இறக்கும் போது, ​​சேவை // சேவையை ஏற்றுவதை உறுதி செய்யாது ஒவ்வொரு // வினாடிக்கும் ஒரு முறை, சேவை தொடங்கும் செயல்பாட்டில் உள்ளது என்று தெரிவிக்கும் ஒரு நூல் தொடங்கப்பட்டது. // நூலை ஒத்திசைக்க ஒரு நிகழ்வு உருவாக்கப்பட்டது. மேலும் // ஒத்திசைக்க உருவாக்கப்பட்டது. hSendStartPending = CreateEvent(NULL, TRUE, FALSE, NULL); hSendStartThread ஐக் கையாளவும்; DWORD dwThreadId; hSendStartThread = CreateThread(NULL, 0, SendStartPending, NULL, 0, &dwThreadId); //அனைத்து சேவை துவக்கமும் இங்கே செய்யப்படுகிறது. InitService(); SetEvent(hSendStartPending); if(WaitForSingleObject(hSendStartThread, 2000) != WAIT_OBJECT_0) ( TerminateThread(hSendStartThread, 0); ) CloseHandle(hSendStartPending); CloseHandle (hSendStartThread); hWork = CreateEvent(NULL, TRUE, FALSE, NULL); hServiceThread = CreateThread(NULL, 0, ServiceFunc, 0, 0, &dwThreadId); sStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus(hSS, &sStatus); ) // SCM க்கு அறிவிப்புகளை அனுப்பும் ஒரு நூல் செயல்பாடு // ஒவ்வொரு நொடியும் துவக்க செயல்முறை நடந்து கொண்டிருக்கிறது. hSendStartPending // நிகழ்வு அமைக்கப்பட்டவுடன் // செயல்பாடு முடிவடைகிறது. DWORD WINAPI SendStartPending(LPVOID) ( sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_START_PENDING; sStatus.dwWaitHint = 2000; // "Sleep" என 1 வினாடிக்கு நிகழ்வு முடிந்த பிறகு // "Sleep" என்ற சிக்னலை 1 வினாடிக்கு உள்ளிடவில்லை. நிலை (சேவை துவக்கம் // முடிவடையவில்லை), நாங்கள் அடுத்த அறிவிப்பை அனுப்புகிறோம், // அதிகபட்ச நேர இடைவெளியை // 2 வினாடிகளுக்கு அமைக்கிறோம், இதனால் // அடுத்த அறிவிப்பு வரும் வரை நேரம் ஒதுக்கப்படும். (உண்மை) ( SetServiceStatus(hSS, &sStatus); sStatus .dwCheckPoint++; என்றால்(WaitForSingleObject(hSendStartPending, 1000)!=WAIT_TIMEOUT) முறிவு; ) sStatus.dwCheckPoint; 0 தரவுகளைப் படித்தல், // நினைவக ஒதுக்கீடு போன்றவை. void InitService() (... ) // சேவைக் குறியீட்டைக் கொண்ட செயல்பாடு. DWORD WINAPI ServiceFunc(LPVOID) ((உண்மை) (என்றால் (!bPause) ( // இதில் பொதுவாக // சில வகையான சுழற்சி செயல்பாடுகளைச் செய்யும் குறியீடு உள்ளது... ) என்றால் (WaitForSingleObject(hWork, 1000)!=WAIT_TIMEOUT ) இடைவேளை; SendStopPending = CreateEvent(NULL, TRUE, FALSE, NULL); hSendStopThread = CreateThread(NULL, 0, SendStopPending, NULL, 0, & dwThreadId); SetEvent(hWork); என்றால் (WaitForSingleObject(hService_0Thread) (hService_00) (hServiceThread, 0); ) SetEvent(hSendStopPending); CloseHandle(hServiceThread); CloseHandle(hWork); if(WaitForSingleObject(hSendStopThread, 2000) != WAIT_OBJECT_0) (TerminateTendStop(hSendhStop) ); sStatus.dwCurrentState = SERVICE_STOPPED; SetServiceStatus( hSS, &sStatus); முறிவு; வழக்கு SERVICE_CONTROL_PAUSE: bPause = true; sStatus.dwCurrentState = SERVICE_PAUSED; SetServiceStatus(hSS, &sStatus); முறிவு; வழக்கு SERVICE_CONTROL_CONTINUE: bPause = true; sStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus(hSS, &sStatus); முறிவு; வழக்கு SERVICE_CONTROL_INTERROGATE: SetServiceStatus(hSS, &sStatus); முறிவு; இயல்புநிலை: SetServiceStatus(hSS, &sStatus); முறிவு; ) ) // சேவையை நிறுத்த SendStartPending // போன்ற நூல் செயல்பாடு. DWORD WINAPI SendStopPending(LPVOID) (sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_STOP_PENDING; sStatus.dwWaitHint = 2000; அதே சமயம் (உண்மை) (உண்மையானது) +; என்றால்(WaitForSingleObject( hSendStopPending, 1000 )! =WAIT_TIMEOUT) இடைவெளி; ) sStatus.dwCheckPoint = 0; திரும்ப 0; )

ஒரு பயன்பாட்டை விண்டோஸ் சேவையாக எவ்வாறு இயக்குவது

கிளையன்ட் அப்ளிகேஷனை சேவையாக இயக்க முடியுமா? அவற்றில் ஒன்றில், நிலையான OS கருவிகளைப் பயன்படுத்தி விண்டோஸ் சேவையை உருவாக்குவதற்கான வழிகளை விவரித்தேன். இருப்பினும், ஒவ்வொரு கன்சோல் பயன்பாடும் ஒரு சேவையாக இயங்க முடியாது, மேலும் வரைகலை இடைமுகம் கொண்ட நிரல்கள், கொள்கையளவில், இந்த வழியில் செயல்பட முடியாது. ஆனால் பயன்பாட்டை ஒரு சேவையாக இயக்குவது இன்னும் சாத்தியமாகும், மேலும் அசல் பெயரைக் கொண்ட நிரல் இதற்கு எங்களுக்கு உதவும் உறிஞ்சாத சேவை மேலாளர்.

என்எஸ்எஸ்எம் இலவசம் மென்பொருள்உடன் திறந்த மூலமற்றும் விண்டோஸ் 2000 முதல் விண்டோஸ் 8 வரையிலான அனைத்து மைக்ரோசாஃப்ட் ஆப்பரேட்டிங் சிஸ்டங்களையும் ஆதரிக்கிறது. என்எஸ்எஸ்எம்க்கு நிறுவல் தேவையில்லை, பதிவிறக்கம் செய்து திறக்கவும். விநியோகத்தில் 32- மற்றும் 64-பிட் இயக்க முறைமைகளுக்கான பதிப்புகள் உள்ளன. nssm.cc என்ற இணையதளத்தில் நீங்கள் நிரலைப் பெறலாம், தற்போது சமீபத்திய நிலையான பதிப்பு 2.21.1 ஆகும், அதை நான் பயன்படுத்துவேன்.

NSSM இன் திறன்களை நிரூபிக்க, இயக்க முயற்சிப்போம் விண்டோஸ் நோட்பேட்விண்டோஸ் 8.1 இல் ஒரு சேவையாக.

ஒரு சேவையை உருவாக்குதல்

என்ற சேவையை உருவாக்க நோட்பேட்கட்டளை கன்சோலைத் துவக்கி, தொகுக்கப்படாத NSSM (64-பிட் விண்டோஸுக்கு) உள்ள கோப்புறைக்குச் சென்று, nssm இன்ஸ்டால் நோட்பேட் கட்டளையை உள்ளிடவும், இது NSSM வரைகலை நிறுவி சாளரத்தைத் திறக்கும். ஒரு சேவையை உருவாக்க, பாதை புலத்தில் இயங்கக்கூடிய கோப்பிற்கான பாதையைக் குறிப்பிட்டு, "சேவையை நிறுவு" பொத்தானைக் கிளிக் செய்யவும். கூடுதலாக, விருப்பங்கள் துறையில் சேவையைத் தொடங்க தேவையான விசைகளை நீங்கள் குறிப்பிடலாம்.

புதிய சேவையை உருவாக்கும் போது சில கூடுதல் அளவுருக்களையும் குறிப்பிடலாம்.

பணிநிறுத்தம் தாவல் பணிநிறுத்தம் முறைகள் மற்றும் பயன்பாடு சாதாரணமாக நிறுத்தப்படும்போது அல்லது செயலிழக்கும்போது பயன்படுத்தப்படும் காலக்கெடுவை பட்டியலிடுகிறது. NSSM ஒரு நிறுத்த கட்டளையைப் பெறும்போது (உதாரணமாக, ஒரு பயன்பாடு நிறுத்தப்படும் போது), அது கட்டுப்படுத்தப்பட்ட பயன்பாட்டை சாதாரண முறையில் நிறுத்த முயற்சிக்கிறது. பயன்பாடு பதிலளிக்கவில்லை என்றால், இந்த பயன்பாட்டின் அனைத்து செயல்முறைகளையும் துணைச் செயலாக்கங்களையும் NSSM வலுக்கட்டாயமாக நிறுத்தலாம்.

பயன்பாட்டை மூடுவதற்கு நான்கு படிகள் உள்ளன, மேலும் அவை முன்னிருப்பாக இந்த வரிசையில் பயன்படுத்தப்படும்:

முதல் கட்டத்தில், என்எஸ்எஸ்எம் ஒரு நிகழ்வை உருவாக்கி அனுப்ப முயற்சிக்கிறது Ctrl+C.இந்த முறை கன்சோல் பயன்பாடுகள் அல்லது ஸ்கிரிப்ட்களுக்கு நன்றாக வேலை செய்கிறது, ஆனால் வரைகலை பயன்பாடுகளுக்கு இது பொருந்தாது;
NSSM, பயன்பாட்டால் உருவாக்கப்பட்ட அனைத்து சாளரங்களையும் கண்டறிந்து, அவர்களுக்கு WM_CLOSE செய்தியை அனுப்புகிறது, இதனால் பயன்பாடு வெளியேறும்;
மூன்றாவது படி, என்எஸ்எஸ்எம் பயன்பாட்டினால் உருவாக்கப்பட்ட அனைத்து த்ரெட்களையும் கணக்கிட்டு அவற்றுக்கு ஒரு WM_QUIT செய்தியை அனுப்புகிறது, விண்ணப்பத்தில் நூல் செய்தி வரிசை இருந்தால் அது பெறப்படும்;
கடைசி முயற்சியாக, என்எஸ்எஸ்எம் டெர்மினேட் ப்ராசஸ்() முறையை அழைக்கலாம், இது பயன்பாட்டை நிறுத்தும்படி கட்டாயப்படுத்துகிறது.

சில அல்லது அனைத்து முறைகளையும் முடக்குவது சாத்தியம், ஆனால் வெவ்வேறு பயன்பாடுகள்வெவ்வேறு முறைகள் வேலை செய்கின்றன, மேலும் பயன்பாட்டை சரியாக மூடுவதற்கு, எல்லாவற்றையும் அப்படியே விட்டுவிட பரிந்துரைக்கப்படுகிறது.

இயல்பாக, ஒரு சேவை செயலிழந்தால், NSSM அதை மறுதொடக்கம் செய்ய முயற்சிக்கும். "செயல்கள் வெளியேறு" தாவலில், பயன்பாடு அசாதாரணமாக முடிவடையும் போது தானியங்கி செயலை மாற்றலாம், அத்துடன் பயன்பாடு தானாக மறுதொடக்கம் செய்வதற்கு முன் தாமதத்தை அமைக்கலாம்.

"உள்ளீடு/வெளியீடு (I/O)" தாவலில், குறிப்பிட்ட கோப்பில் பயன்பாட்டு உள்ளீடு/வெளியீட்டின் திசைமாற்றத்தை அமைக்கலாம்.

"சுற்றுச்சூழல்" தாவலில், சேவைக்கான புதிய சூழல் மாறிகளை அமைக்கலாம் அல்லது ஏற்கனவே உள்ளவற்றை மேலெழுதலாம்.

நீங்கள் வரைகலை ஷெல்லைப் பயன்படுத்த முடியாது மற்றும் பின்வரும் கட்டளையுடன் உடனடியாக பணியகத்தில் ஒரு சேவையை உருவாக்கவும்:

nssm நோட்பேடை நிறுவவும் ″C:\Windows\system32\notepad.exe″

சேவை மேலாண்மை

NSSM ஐப் பயன்படுத்தி சேவையை உருவாக்கிய பிறகு, Services snap-inக்குச் சென்று நோட்பேட் சேவையைக் கண்டறியவும். நீங்கள் பார்க்க முடியும் என, தோற்றத்தில் இது மற்ற சேவைகளிலிருந்து வேறுபட்டதல்ல; நாங்கள் அதைத் தொடங்கலாம், நிறுத்தலாம் அல்லது வெளியீட்டு பயன்முறையை மாற்றலாம். இருப்பினும், nssm.exe இயங்கக்கூடிய கோப்பாக பட்டியலிடப்பட்டுள்ளது என்பதை நினைவில் கொள்க.

டாஸ்க் மேனேஜருக்குச் சென்றால், பின்வரும் படத்தைப் பார்ப்போம்: NSSM முக்கிய (பெற்றோர்) செயல்முறையாக இயங்குகிறது, நோட்பேட் சேவை அதன் குழந்தை செயல்முறையாக இயங்குகிறது, மேலும் நோட்பேட் பயன்பாடு ஏற்கனவே இந்த குழந்தை செயல்பாட்டில் இயங்குகிறது.

ஒரு சேவையை அகற்றுதல்

ஒரு சேவையை அகற்ற, nssm remove notepad கட்டளையை உள்ளிட்டு அதை அகற்றுவதை உறுதிப்படுத்தவும். மற்றும் கட்டளையை உள்ளிடுவதன் மூலம் nssm remove notepad confirm , நீங்கள் உறுதிப்படுத்தல் இல்லாமல் செய்யலாம்.

ஊடாடும் வகையில் ஒரு சேவையைத் தொடங்கவும்

முக்கிய வேறுபாடு விருப்ப பயன்பாடுஒரு சேவையிலிருந்து, பயன்பாட்டைத் துவக்கிய பிறகு, தொடர்ந்து வேலை செய்ய பயனரிடமிருந்து கூடுதல் செயல்கள் தேவைப்படலாம் - எடுத்துக்காட்டாக, ஒரு பொத்தானை அழுத்தவும் அல்லது கட்டளையை உள்ளிடவும். இதைச் செய்ய, நீங்கள் அதற்கான அணுகலைப் பெற வேண்டும், அதைச் செய்வது அவ்வளவு எளிதானது அல்ல.

ஊடாடும் பயன்முறையில் சேவையைத் தொடங்க, அதன் பண்புகளை நீங்கள் சேவைகள் ஸ்னாப்-இன் மற்றும் "உள்நுழை" தாவலில் திறக்க வேண்டும், "டெஸ்க்டாப்புடன் தொடர்புகொள்வதை அனுமதி" தேர்வுப்பெட்டியை சரிபார்க்கவும்.

பின்னர் அற்புதங்கள் தொடங்குகின்றன :) ஊடாடும் பயன்முறையில் தொடங்கப்பட்ட ஒரு சேவை தனிமைப்படுத்தப்பட்ட அமர்வில் திறக்கிறது (அமர்வு 0). ஊடாடும் சேவைகள் கண்டறிதல் சேவையை (ui0detect) பயன்படுத்தி மட்டுமே இந்த அமர்வை அணுக முடியும், இது கணினியில் ஊடாடும் சேவைகளின் தொடக்கத்தைக் கண்காணித்து எச்சரிக்கையை வெளியிடுகிறது. Windows 7\Server 2008 இல், இந்தச் சேவை இயல்பாகவே செயலில் உள்ளது, ஆனால் Windows 8\Server 2012 இல் இது முடக்கப்பட்டுள்ளது மற்றும் சேவைகள் வரைகலை ஸ்னாப்-இனில் தோன்றாது (குறைந்தது நான் அதை அங்கு காணவில்லை). மேலும், இந்த மர்மமான சேவையை நீங்கள் கண்டறிந்து, அதைத் தொடங்க முயற்சித்தால், உங்களுக்கு ஒரு பிழைச் செய்தி வரும்.

ஆனால் உண்மை என்னவென்றால், அதை இயக்க, உங்கள் கணினியில் ஊடாடும் சேவைகளை இயக்க அனுமதிக்க வேண்டும். எனவே, ரெஜிஸ்ட்ரி எடிட்டரைத் திறந்து, HKLM\System\CurrentControlSet\Control\Windows பிரிவில் DWORD வகை அளவுருவைக் கண்டறியவும். ஊடாடும் சேவைகள் இல்லைமற்றும் அதன் மதிப்பை அமைக்கவும் 0 .

பின்னர் PowerShell கன்சோலைத் திறந்து, கட்டளையுடன் கண்டுபிடிப்பு சேவையைத் தொடங்கவும்:

தொடக்க சேவை -பெயர் ui0detect

கண்டறிதல் சேவை இயங்குவதை உறுதிசெய்த பிறகு, நோட்பேட் சேவையை மறுதொடக்கம் செய்து, இந்த சாளரத்தைப் பெறுவோம். "செய்தியைக் காண்க" என்பதைத் தேர்ந்தெடுக்கவும்

மற்றும் எங்கள் பயன்பாடு இயங்கும் பூஜ்ய அமர்வில் நம்மைக் காண்கிறோம். அதன் பிறகு தேவையான செயல்களைச் செய்துவிட்டு திரும்புவோம்.

பயன்பாடுகளை விண்டோஸ் சேவைகளாக இயக்க இது ஒரு சுவாரஸ்யமான தீர்வாகும். மிகவும் அழகாக இல்லை, ஆனால் அதன் பெயருடன் மிகவும் ஒத்துப்போகிறது :)

கடைசியாக புதுப்பிக்கப்பட்டது: 10/31/2015

Windows OS இன் மிக முக்கியமான கூறுகளில் ஒன்று சேவைகள். உண்மையில், இவை வரைகலை இடைமுகம் இல்லாத மற்றும் பின்னணியில் பல்வேறு பணிகளைச் செய்யும் தனித்தனி பயன்பாடுகள். இயக்க முறைமை தொடங்கும் போது அல்லது பயனர் வேலை செய்யும் வேறு எந்த நேரத்திலும் சேவைகளைத் தொடங்கலாம். சேவைகளின் பொதுவான உதாரணம் பல்வேறு இணைய சேவையகங்கள், அவை பின்னணியில் இணைப்புகளுக்கான ஒரு குறிப்பிட்ட போர்ட்டைக் கேட்கின்றன, மேலும் இணைப்புகள் இருந்தால், அவை அவற்றுடன் தொடர்பு கொள்கின்றன. இவை மற்றவர்களுக்கு பல்வேறு துணை புதுப்பிப்பு சேவைகளாகவும் இருக்கலாம் நிறுவப்பட்ட நிரல்கள், இது சர்வரைத் தொடர்புகொண்டு இருந்தால் கண்டுபிடிக்கவும் ஒரு புதிய பதிப்புபயன்பாடுகள். பொதுவாக, சேவைகள் பேனலைத் திறந்து, நிறுவப்பட்ட மற்றும் இயங்கும் அனைத்து சேவைகளையும் நாமே பார்க்கலாம்:

C# இல் உங்கள் சொந்த சேவைகளை எவ்வாறு உருவாக்குவது என்பதைப் பார்ப்போம். செயல்படுத்தப்பட வேண்டிய பணியாக, கோப்பு முறைமையில் ஒரு குறிப்பிட்ட கோப்புறையில் ஏற்படும் மாற்றங்களை கண்காணிக்க தேர்வு செய்வோம். இப்போது அதை இயக்க ஒரு சேவையை உருவாக்குவோம்.

முதலில், ஒரு புதிய திட்டத்தை உருவாக்குவோம், அது விண்டோஸ் சேவை வகையாக இருக்கும். திட்டத்தை FileWatcherService என்று அழைப்போம்:

விஷுவல் ஸ்டுடியோ உங்களுக்கு தேவையான அனைத்தையும் கொண்ட ஒரு திட்டத்தை உருவாக்குகிறது. இந்த வகை திட்டத்தை நாம் தேர்வு செய்ய வேண்டிய அவசியமில்லை என்றாலும், ஒரு வகுப்பு நூலக திட்டத்தை உருவாக்கி, அதில் தேவையான அனைத்து வகுப்புகளையும் வரையறுக்கலாம்.

எனவே புதிய திட்டம் இதுபோல் தெரிகிறது:

ஒரு கோப்பு Program.cs உள்ளது மற்றும் உண்மையான சேவை முனை Service1.cs உள்ளது.

சேவையானது ஒரு சாதாரண பயன்பாட்டைக் குறிக்கிறது, ஆனால் அது தானாகவே தொடங்காது. அனைத்து அழைப்புகளும் அதற்கான அணுகலும் சேவைக் கட்டுப்பாட்டு மேலாளர் (சேவைக் கட்டுப்பாட்டு மேலாளர் அல்லது SCM) வழியாகச் செல்கின்றன. கணினி தொடக்கத்தில் அல்லது கைமுறையாக ஒரு சேவை தானாகவே தொடங்கும் போது, ​​நிரல் வகுப்பில் உள்ள முதன்மை முறையை SCM அழைக்கிறது:

நிலையான வகுப்பு நிரல் (நிலையான வெற்றிட முதன்மை() ( ServiceBase ServicesToRun; ServicesToRun = புதிய ServiceBase (புதிய சேவை1() ); ServiceBase.Run(ServicesToRun); ) )

ஒரே நேரத்தில் பல சேவைகளை இயக்க முதன்மை முறையானது இயல்புநிலையாக வரையறுக்கப்படுகிறது, அவை ServicesToRun வரிசையில் வரையறுக்கப்பட்டுள்ளன. இருப்பினும், இயல்பாக, திட்டத்தில் சேவை1 என்ற ஒரே ஒரு சேவை மட்டுமே உள்ளது. ரன் முறையைப் பயன்படுத்தி ஏவுதல் மேற்கொள்ளப்படுகிறது: ServiceBase.Run(ServicesToRun) .

தொடங்கப்படும் சேவை Service1.cs முனையால் குறிப்பிடப்படுகிறது. இருப்பினும், இது உண்மையில் ஒரு எளிய குறியீடு கோப்பு அல்ல. இந்த முனையைத் திறந்தால், சேவை வடிவமைப்பாளர் கோப்பு Service1.Designer.cs மற்றும் Service1 வகுப்பைக் காண்போம்.

Service1 வகுப்பு உண்மையில் சேவையைக் குறிக்கிறது. இயல்பாக, இது பின்வரும் குறியீட்டைக் கொண்டுள்ளது:

கணினியைப் பயன்படுத்துதல்; System.Collections.Generic ஐப் பயன்படுத்துதல்; System.ComponentModel ஐப் பயன்படுத்துதல்; System.Data ஐப் பயன்படுத்துதல்; System.Diagnostics ஐப் பயன்படுத்துதல்; System.Linq ஐப் பயன்படுத்துதல்; System.ServiceProcess ஐப் பயன்படுத்துதல்; System.Text ஐப் பயன்படுத்துதல்; System.Threading.Tasks ஐப் பயன்படுத்துதல்; பெயர்வெளி FileWatcherService (பொது பகுதி வகுப்பு சேவை1: சர்வீஸ்பேஸ் (பொது சேவை1() (InitializeComponent(); ) பாதுகாக்கப்பட்ட மேலெழுதுதல் வெற்றிடமான OnStart(string args) ( ) பாதுகாக்கப்பட்ட மீறல் வெற்றிடமான OnStop() ( ) )

சேவை வகுப்பு, சர்வீஸ்பேஸ் அடிப்படை வகுப்பிலிருந்து பெற வேண்டும். இந்த வகுப்பு பல முறைகளை வரையறுக்கிறது, அவற்றில் முக்கியமானவை, சேவையால் செய்யப்படும் செயல்களைத் தொடங்கும் OnStart() முறை மற்றும் சேவையை நிறுத்தும் OnStop() முறை.

SCM முதன்மை முறையை அழைத்து சேவையைப் பதிவுசெய்த பிறகு, அது OnStart முறையை இயக்குவதன் மூலம் நேரடியாக அழைக்கப்படும்.

சேவைகள் கன்சோலில் இருக்கும்போது அல்லது வழியாக கட்டளை வரிசேவையை நிறுத்த ஒரு கட்டளையை அனுப்புகிறோம், பின்னர் SCM அதை நிறுத்த OnStop முறையை அழைக்கிறது.

சேவை வகுப்பில் இந்த இரண்டு முறைகளுக்கு கூடுதலாக, ServiceBase அடிப்படை வகுப்பின் மேலும் பல முறைகளை நீங்கள் மேலெழுதலாம்:

    இடைநிறுத்தம்: சேவை இடைநிறுத்தப்படும் போது அழைக்கப்படும்

    தொடரவும்: ஒரு சேவை இடைநிறுத்தப்பட்ட பிறகு மீண்டும் தொடங்கும் போது அழைக்கப்படும்

    பணிநிறுத்தம்: விண்டோஸ் மூடப்படும் போது அழைக்கப்படுகிறது

    OnPowerEvent: பவர் பயன்முறை மாறும்போது அழைக்கப்படுகிறது

    OnCustomCommand: சேவை கட்டுப்பாட்டு மேலாளரிடமிருந்து (SCM) ஒரு சேவை தனிப்பயன் கட்டளையைப் பெறும்போது அழைக்கப்படுகிறது.

Service1 வகுப்பின் கட்டமைப்பாளரில், InitializeComponent() முறை அழைக்கப்படுகிறது, இது Service1.Designer.cs என்ற வடிவமைப்பாளர் கோப்பில் வரையறுக்கப்பட்டுள்ளது:

நேம்ஸ்பேஸ் FileWatcherService ( பகுதி வகுப்பு சர்வீஸ்1 (தனியார் System.ComponentModel.ICcontainer கூறுகள் = பூஜ்யம்; பாதுகாக்கப்பட்ட மேலெழுதல் வெற்றிடத்தை அகற்றுதல் (பூல் அகற்றுதல்) (அகற்றினால் && (கூறுகள் != null)) (கூறுகள்.Dispose(); ) base.Dispose(disposing) );

அதில் குறிப்பிடப்பட வேண்டிய ஒரே விஷயம், சேவையின் பெயரை அமைப்பது (ServiceName சொத்து):

This.ServiceName = "Service1";

இந்த சேவையை நிறுவிய பின் சேவை கன்சோலில் காட்டப்படும் பெயர் இதுவாகும். அதை மாற்றலாம் அல்லது அப்படியே விட்டுவிடலாம்.

இப்போது சேவைக் குறியீட்டை பின்வருமாறு மாற்றுவோம்:

கணினியைப் பயன்படுத்துதல்; System.ServiceProcess ஐப் பயன்படுத்துதல்; System.IO ஐப் பயன்படுத்துதல்; System.Threading பயன்படுத்தி; பெயர்வெளி FileWatcherService (பொது பகுதி வகுப்பு சேவை1: ServiceBase (லாகர் லாகர்; பொது சேவை1() (InitializeComponent(); this.CanStop = true; this.CanPauseAndContinue = true; this.AutoLog = true; ) பாதுகாக்கப்பட்ட மீறல் வெற்றிடமான OnStart(string) லாகர் = புதிய லாகர்();த்ரெட் லாகர் த்ரெட் = புதிய த்ரெட்(புதிய த்ரெட்ஸ்டார்ட்(லாகர்.ஸ்டார்ட்)); லாகர் த்ரெட்.ஸ்டார்ட்(); ) பாதுகாக்கப்பட்ட ஓவர்ரைட் வெற்றிடத்தை OnStop() (logger.Stop(); Thread.Sleep(1000); ) ) class Logger ( FileSystemWatcher watcher; object obj = new object(); bool enabled = true; public Logger() ( watcher = new FileSystemWatcher("D:\\Temp"); watcher.Deleted += Watcher_Deleted; watcher.Created + = Watcher_Created; watcher.Manged கண்காணிப்பு string filePath = e.OldFullPath; RecordEntry(fileEvent, filePath); ) // தனிப்பட்ட வெற்றிடமான Watcher_Changed (பொருள் அனுப்புநர், FileSystemEventArgs e) கோப்புகளை மாற்றுதல் ( சரம் கோப்பு நிகழ்வு = "மாற்றப்பட்டது"; சரம் கோப்புபாதை = e.FullPath; RecordEntry (fileEvent, filePath); ) இ) ( சரம் கோப்பு நிகழ்வு = "உருவாக்கப்பட்டது"; சரம் கோப்புபாதை = e.FullPath; RecordEntry (fileEvent, filePath); ) // கோப்புகளை தனிப்பட்ட வெற்றிடத்தை நீக்குதல் Watcher_Deleted(பொருள் அனுப்புநர், FileSystemEventArgs e) ( சரம் கோப்பு நிகழ்வு = "நீக்கப்பட்டது" e.FullPath; RecordEntry(fileEvent, filePath); ) தனிப்பட்ட வெற்றிடமான RecordEntry(string fileEvent, string filePath) ( lock (obj) ( (StreamWriter writer = new StreamWriter("D:\\templog.txt", true))) ( எழுத்தாளர் பறிப்பு();)))))

அனைத்து செயல்பாடுகளையும் இணைக்கும் முக்கிய வகுப்பு லாகர் கிளாஸ் ஆகும். FileSystemWatcher பொருளைப் பயன்படுத்தி, கோப்புறையில் ஏற்படும் மாற்றங்களைக் கண்காணிக்கும் டி://டெம்ப். Start() முறையானது FileSystemWatcher ஆப்ஜெக்ட்டின் மூலம் மாற்றங்களை நாம் கவனிப்போம் என்று குறிப்பிடுகிறது. மேலும் செயல்படுத்தப்பட்ட பூலியன் மாறி உண்மையாக இருக்கும் வரை அனைத்து வேலைகளும் தொடரும். மற்றும் நிறுத்து() முறையானது வகுப்பை நிறுத்த அனுமதிக்கும்.

FileSystemWatcher நிகழ்வுகள் நீங்கள் பார்த்த கோப்புறையில் அனைத்து மாற்றங்களையும் கண்காணிக்க அனுமதிக்கின்றன. இது templog.txt கோப்பில் மாற்றங்களை பதிவு செய்யும். templog.txt கோப்பிற்கான ஆதார பந்தயத்தைத் தவிர்க்க, அதில் மாற்றங்கள் பதிவு செய்யப்படுகின்றன, பதிவு செய்யும் செயல்முறை lock(obj) ஸ்டப் மூலம் தடுக்கப்பட்டது.

இதன் விளைவாக, உருவாக்குதல், மாற்றுதல், மறுபெயரிடுதல் மற்றும் நீக்குதல் ஆகியவற்றிற்குப் பிறகு, பதிவு கோப்பில் இது போன்ற ஏதாவது இருக்கும்:

07/30/2015 12:15:40 கோப்பு D:\Temp\New text document.txt உருவாக்கப்பட்டது 07/30/2015 12:15:46 கோப்பு D:\Temp\New text document.txt D:\ என மறுபெயரிடப்பட்டது Temp\hello.txt 07/30/2015 12:15:55 கோப்பு D:\Temp\hello.txt மாற்றப்பட்டது 07/30/2015 12:15:55 கோப்பு D:\Temp\hello.txt 07/30 மாற்றப்பட்டது /2015 12:16:01 கோப்பு D: \Temp\hello.txt நீக்கப்பட்டது

சர்வீஸ்1 சேவை வகுப்பிலேயே, கன்ஸ்ட்ரக்டரில் பல விருப்பங்கள் அமைக்கப்பட்டுள்ளன:

இது.CanStop = உண்மை; // இந்த சேவையை நிறுத்தலாம்.CanPauseAndContinue = true; // சேவையை இடைநிறுத்தி, பின் தொடரலாம்.AutoLog = true; // சேவை பதிவில் எழுதலாம்

OnStart() முறையில், Logger ஆப்ஜெக்ட்டைத் தொடங்க புதிய நூல் அழைக்கப்படுகிறது:

பாதுகாக்கப்பட்ட மேலெழுதுதல் வெற்றிடமான OnStart(string args) (logger = new Logger(); Thread loggerThread = new Thread(new ThreadStart(logger.Start)); loggerThread.Start(); )

தற்போதைய நூல் SCM கட்டளைகளை மட்டுமே செயலாக்குகிறது மற்றும் முடிந்தவரை விரைவில் OnStart முறையிலிருந்து திரும்ப வேண்டும் என்பதால் புதிய நூல் தேவைப்படுகிறது.

சேவையை நிறுத்த SCM இலிருந்து ஒரு கட்டளை பெறப்பட்டால், OnStop முறை தூண்டப்படுகிறது, இது logger.Stop() முறையை அழைக்கிறது. கூடுதல் தாமதம் லாகர் தொடரை நிறுத்த அனுமதிக்கும்:

OnStop() (logger.Stop(); Thread.Sleep(1000);

இருப்பினும், சேவை வகுப்பு போதுமானதாக இல்லை. நாங்கள் ஒரு சேவை நிறுவியை உருவாக்க வேண்டும்.

அல்லது பயனர்களின் டெஸ்க்டாப் (உள்ளூர் மற்றும் தொலைநிலை இரண்டும்), இருப்பினும், சில சேவைகளுக்கு விதிவிலக்கு சாத்தியம் - கன்சோலுடனான தொடர்பு (அமர்வு எண் 0, இதில் பயனர் உள்நாட்டில் பதிவுசெய்யப்பட்ட அல்லது சேவையைத் தொடங்கும் போது mstsc/கன்சோல் சுவிட்ச் உடன்).

சேவைகளுக்கு பல முறைகள் உள்ளன:

  • ஏவுவது தடைசெய்யப்பட்டுள்ளது;
  • கையேடு தொடக்கம் (கோரிக்கையின் பேரில்);
  • கணினி துவங்கும் போது தானியங்கி தொடக்கம்;
  • தானியங்கி (தாமதமான) வெளியீடு (விண்டோஸ் விஸ்டா மற்றும் விண்டோஸ் சர்வர் 2008 இல் அறிமுகப்படுத்தப்பட்டது);
  • கட்டாய சேவை/இயக்கி (தானியங்கி தொடக்கம் மற்றும் இயலாமை (பயனருக்கு) சேவையை நிறுத்த).

பின்னணி முறை

விண்டோஸ் சேவைகளைத் தொடங்கவும், நிறுத்தவும் மற்றும் மாற்றவும்

சேவைகள் மற்றும் அவற்றின் பண்புகளை MMC இல் மாற்றலாம்:

இயக்க முறைமைகளின் வெவ்வேறு பதிப்புகள் சில சேவைகளைக் கொண்டிருக்கலாம், மற்றவை அல்ல. தனித்தனியாக நிறுவப்பட்ட சில பயன்பாடுகள் மற்றும் நிரல்களும் அவற்றின் சொந்த சேவைகளை உருவாக்கலாம்.

மைக்ரோசாப்ட் விண்டோஸ் இயக்க முறைமை சேவைகளின் பட்டியல்

காட்சி பெயர் சேவையின் பெயர் செயல்பாடுகள் விளக்கம்
DHCP கிளையன்ட் Dhcp இந்தக் கணினிக்கான IP முகவரிகள் மற்றும் DNS பதிவுகளைப் பதிவுசெய்து புதுப்பிக்கிறது. இந்தச் சேவை நிறுத்தப்பட்டால், இந்தக் கணினியால் டைனமிக் ஐபி முகவரிகளைப் பெற முடியாது மற்றும் டிஎன்எஸ் புதுப்பிப்புகளைச் செய்ய முடியாது.
டிஎன்எஸ் கிளையன்ட் டிஎன்ஸ்கேச் DNS கிளையண்ட் சேவை (dnscache) டொமைன் நேம் சிஸ்டம் (DNS) பெயர்களை தேக்கி, கொடுக்கப்பட்ட கணினியின் முழு தகுதியான பெயரை பதிவு செய்கிறது. சேவை நிறுத்தப்பட்டால், DNS பெயர் தீர்மானம் தொடரும். இருப்பினும், DNS பெயர் வரிசைகளின் முடிவுகள் தேக்ககப்படுத்தப்படாது மற்றும் கணினியின் பெயர் பதிவு செய்யப்படாது.
விநியோகிக்கப்பட்ட பரிவர்த்தனை ஒருங்கிணைப்பாளருக்கான KtmRm KtmRm MSDTC மற்றும் கர்னல் பரிவர்த்தனை மேலாளர் (KTM) ஆகியவற்றுக்கு இடையேயான பரிவர்த்தனைகளை ஒருங்கிணைக்கிறது.
ரெடிபூஸ்ட் EMDMgmt ரெடிபூஸ்ட் ReadyBoost தொழில்நுட்பத்தைப் பயன்படுத்தி கணினி செயல்திறனை மேம்படுத்துவதற்கான ஆதரவு.
சூப்பர்ஃபெட்ச் SysMain சூப்பர்ஃபெட்ச் கணினி செயல்திறனைப் பராமரிக்கிறது மற்றும் மேம்படுத்துகிறது.
விண்டோஸ் ஆடியோ Audiosrv விண்டோஸ் நிரல்களுக்கான ஆடியோ கருவிகளை நிர்வகித்தல். இந்தச் சேவை நிறுத்தப்பட்டால், ஆடியோ சாதனங்கள் மற்றும் விளைவுகள் சரியாக வேலை செய்யாது.
விண்டோஸ் கார்ட் ஸ்பேஸ் ஐடிஎஸ்விசி டிஜிட்டல் அடையாளங்களை உருவாக்க, நிர்வகிக்க மற்றும் வெளிப்படுத்தும் பாதுகாப்பான திறனை வழங்குகிறது.
தானியங்கி மேம்படுத்தல் WUAUSERV விண்டோஸ் புதுப்பிப்புகளைப் பதிவிறக்குதல் மற்றும் நிறுவுதல் ஆகியவை அடங்கும். சேவை முடக்கப்பட்டிருந்தால், இந்த கணினி தானியங்கி புதுப்பிப்புகள் அல்லது விண்டோஸ் புதுப்பிப்பு வலைத்தளத்தைப் பயன்படுத்த முடியாது.
தொலைநிலை நடைமுறை அழைப்பு (RPC) RpcSs இறுதிப்புள்ளிகள் மற்றும் பிற RPC சேவைகளுக்கு இடையே மேப்பிங்கை வழங்குகிறது.

Microsoft பயன்பாடுகள் மற்றும் நிரல்களால் உருவாக்கப்பட்ட சேவைகளின் பட்டியல்

மூன்றாம் தரப்பு பயன்பாடுகள் மற்றும் நிரல்களால் உருவாக்கப்பட்ட சேவைகளின் எடுத்துக்காட்டுகள்

காட்சி பெயர் சேவையின் பெயர் செயல்பாடுகள் விளக்கம்
ESET HTTP சேவையகம் EhttpSrv வைரஸ் தடுப்பு பாதுகாப்பு ESET HTTP சர்வர் கூறு