Vіdminnіst mіzh servіsom i sluzhby vіndovsі. Kokios paslaugos reikalingos „Windows“, o kurias galima išjungti. „Windows“ paslaugos, kurias galima perjungti į rankinį robotų režimą

Koristuvachіv darbo lentelė (tiek vietinė, tiek nuotolinė), tačiau dėl kai kurių paslaugų galima kaltinti - sąveiką su konsole (sesija su numeriu 0, registruojant koristuvach vietoje arba paslaugos pradžioje mstscіz su /console klavišu).

Režimų naudojimas paslaugoms:

  • aptverta prieš paleidimą;
  • rankinis paleidimas (maitinimui);
  • automatinis paleidimas kas valandą, kai kompiuteris užimtas;
  • automatinis (įvairus) paleidimas (įvestas Windows Vista ir Windows Server 2008);
  • obov'yazkova servisas/vairuotojas (automatinio paleidimo ir negalimumo (corystuvach) paleidimo paslauga).

Fono režimas

Paleiskite, sustabdykite ir pakeiskite „Windows“ paslaugas

Paslaugas ir jų atributus galima keisti MMC konsolėje:

Skirtingos operacinių sistemų versijos gali turėti vieną paslaugą ir kitą dieną. „Deyakі“ programos ir programos, kaip jos yra įdiegiamos, todėl gali kurti savo paslaugas.

„Microsoft Windows“ operacinės sistemos paslaugų sąrašas

I'ya, ką pamatyti imu paslauga Funkcijos apibūdinimas
DHCP klientas dhcp Užregistruokite ir atnaujinkite šio kompiuterio IP adresus ir DNS įrašus. Kaip „Zupinena“ paslauga, kompiuteris negali paimti dinaminių IP adresų ir DNS naujinimų.
DNS klientas dnscache DNS kliento paslauga (dnscache) saugo DNS (domeno vardų sistemos) vardus ir registruoja juos už kompiuterio pavadinimo ribų. Kaip paslauga, ji buvo atnaujinta, DNS vardų paskirstymas yra trivatime. Tačiau DNS vardų rezultatai nebus saugomi talpykloje, o kompiuterių pavadinimai nebus registruojami.
KtmRm filialo sandorių koordinatoriui KtmRm Koordinuoja operacijas tarp MSDTC ir Kernel Transaction Manager (KTM).
ReadyBoost EMDMgmt ReadyBoost Sistemos našumo didinimo palaikymas naudojant papildomą ReadyBoost technologiją.
Superfetch SysMain Superfetch Palaiko ir gerina sistemos produktyvumą.
„Windows Audio“. Audiosrv Kuravimas naudojant robotus su garsu, skirtas Windows. Net jei ši paslauga yra įgarsinta, garso įranga ir efektai nebus tinkamai apdoroti.
„Windows“ kortelės vieta idsvc Bezpechuu nadіynu mozhlivіst stvennija, cheruvannya ir rozkrittya skaitmeninis svіdchen.
Automatinis atnaujinimas WUAUSERV Įjunkite parinktį ir įdiekite Windows "naujinimo. Jei paslauga išjungta, kuriame kompiuteryje neįmanoma laimėti galimybės automatinis atnaujinimas arba „Windows Update“ svetainėje.
Savaitinių procedūrų pašalinimas (RPC) RpcSs Įsitikinkite, kad nustatyti galiniai taškai ir kitos RPC paslaugos.

„Microsoft“ programų sukurtų paslaugų sąrašas

Taikyti programas sukurtas paslaugas ir kitų tipų programas

I'ya, ką pamatyti imu paslauga Funkcijos apibūdinimas
ESET HTTP serveris EhttpSrv antivirusinė zakhist ESET HTTP serverio komponentas

Ar galite paleisti kliento programą kaip paslaugą? Ne odos konsolės programa gali paleisti kaip paslauga, bet programos su grafine sąsaja iš esmės negali taip veikti. Bet vis tiek galima paleisti priedą kaip paslaugą ir padėti mums su programa originaliu pavadinimu Nesiurbimo paslaugų vadovas.

NSSM yra tikra programinės įrangos sauga su kodu kuri palaiko visas operacines sistemas Microsoft pradedant Windows 2000 ir baigiant. NSSM neturi įtakos diegimui, užtenka jį gauti ir išpakuoti. Platinimas apima 32 ir 64 bitų operacinėms sistemoms skirtas versijas. Programą galite gauti iš svetainės nssm.cc Narazi Likusi stabili versija yra 2.21.1, taigi aš prisijungsiu.

Norėdami parodyti NSSM galią, pabandykite „Notepad“ paleisti kaip paslaugą „ .

Paslaugos kūrimas

Už paslaugos jiems sukūrimą Užrašų knygelė paleidžiame komandų konsolę, einame į aplanką su NSSM išpakavimu (64 bitų Windows) ir įvedame komandą nssm install notepad, kuri atvers grafinės NSSM diegimo programos langą. Norėdami sukurti paslaugą, tiesiog įveskite kelią į failą į lauką Path ir spustelėkite mygtuką "Įdiegti paslaugą". Dodatkovo lauke Parinktys galite įvesti raktus, reikalingus paslaugai paleisti.

Taip pat naujos paslaugos kūrimo etape galite priskirti papildomus parametrus.

Skirtuke „Išjungimas“ skambėjimo ir skirtojo laiko nustatymo būdai yra išpirkti, nes jie yra pataisomi normaliai užbaigus darbą arba avarinio programos skambėjimo metu. Jei NSSM išjungia garso komandą (pavyzdžiui, kai roboto programa baigta), įjungiamas priedų valdymo pagal personalo rangą garsas. Jei programa neveikia, NSSM gali užbaigti visus programos procesus ir subprocesus.

Usogo є chotiri robotų programos užbaigimo ir vikoristų smarvės plovimo etapai tokia tvarka:

Pirmajame NSSM etape galima sugeneruoti ir ištaisyti ctrl+c.Šis būdas yra gera praktika naudojant konsolės priedus ar scenarijus, bet ne zastosovuetsya grafiniai papildymai;
Tada NSSM atpažįsta visus programos sukurtus langus ir nepaiso WM_CLOSE, kuris inicijuoja išėjimą iš programos;
Trečiasis NSSM etapas išvardija visus programos sukurtus srautus ir nepaiso jo WM_QUIT, tarsi jis būtų pašalintas, tarsi programa galėtų iškviesti giją;
Kaip poilsio NSSM užklausą galite iškviesti TerminateProcess() metodą, pirmiausia užbaigdami programos darbą.

Galima įjungti kai kuriuos arba visus metodus, tačiau skirtingoms programoms rekomenduojama naudoti skirtingus metodus, kad robotų programos būtų tinkamai užbaigtos.

Apsiplovimo atveju NSSM paslauga yra priversta paleisti iš naujo її. Skirtuke „Išeimo veiksmai“ galite pakeisti automatinį neįprasto programos užbaigimo laiką, taip pat nustatyti delsą, kol programa automatiškai paleidžiama iš naujo.

Skirtuke „Įvestis/išvestis (I/O)“ galite nustatyti programos įvesties / išvesties peradresavimą iš failo instrukcijų.

Skirtuke „Aplinka“ galite įdiegti naujus paryškinimo pakeitimus arba perdaryti jį.

Be to, negalite naudoti grafinio apvalkalo ir iš karto sukurti paslaugą konsolėje naudodami šią komandą:

nssm įdiekite užrašų knygelę C:\Windows\system32\notepad.exe

Paslaugų valdymas

Sukūrę paslaugą NSSM pagalbai, eikime į Services snap-in ir žinosime užrašų knygelės paslaugą. Tiesą sakant, atrodo, kad tai netrukdo kitoms paslaugoms, taip pat galime paleisti, paleisti arba pakeisti paleidimo režimą. Tačiau atminkite, kad nssm.exe nurodytas kaip failas, kurį reikia atsisiųsti.

Ir jei aš eisiu į užduočių tvarkytuvę, pamatysime tokį vaizdą: kaip veikia pagrindinis (batkivsky) procesas NSSM, bloknoto paslauga veikia kaip antrasis antrinis procesas, o Notepad priedas veikia antrame antruoju procesas.

Nuotolinė paslauga

Norėdami pašalinti paslaugą, įveskite komandą nssm Remove Notepad ir patvirtinkite, kad ji pašalinta. O įvedę nssm remove notepad patvirtinimo komandą, galite apsieiti ir be patvirtinimo.

Paslaugos paleidimas interaktyviu režimu

Pagrindinė „coristuvach“ programos funkcija paslaugų lauke yra ta, kad paleidus programą, ji gali būti naudojama tęsti priedo darbą iš „coristuvacha“ pusės - pavyzdžiui, paspauskite mygtuką arba įveskite komandą . Kam reikia gauti prieigą prie naujo, kurį, pasirodo, nėra taip lengva įgyti.

Norėdami paleisti paslaugą interaktyviu režimu, paslaugų įrankio skirtuke „Įvesti į sistemą“ turite pažymėti žymės langelį „Leisti sąveiką su darbo lentele“.

Ir tada paleiskite diva Paslaugai, kuri veikia interaktyviu režimu, sistema nustato seanso izoliavimo ribą (0 sesija). Interaktyviųjų paslaugų aptikimo paslaugai (ui0detect) galite skirti daugiau laiko per visą sesiją, kuri rodo interaktyvių paslaugų paleidimą kompiuteryje ir tokio tipo pranešimus. „Windows 7\Server 2008“ ši paslauga įjungta už užrakto, o „Windows 8\Server 2012“ – išjungta ir nerodoma Paslaugos grafinėje įrangoje (nežinau). Be to, jei vis dar žinote slaptąją tarnybą ir bandote ją pradėti, atimkite informaciją apie malonę.

Dešinėje, kad paleidimui būtų leista paleisti interaktyvias paslaugas kompiuteryje. Todėl registro rengyklė HKLM\System\CurrentControlSet\Control\Windows skyriuje yra žinomas DWORD parametras su pavadinimais Nėra interaktyvių paslaugų ir nustatykite jo vertę 0 .

Po to rodoma „PowerShell“ konsolė, paslauga paleidžiama komanda:

Pradėti-Service -Name ui0detect

Patikrinę, ar veikia ekrano paslauga, iš naujo paleiskite bloknoto paslaugą ir pabaigoje nuimkite ašį. Mes pasirenkame elementą „Žiūrėti pranešimą“

ir sunaudojama nulinėje sesijoje, kurioje veikia mūsų programa. Dali Robimo su juo reikiamus žingsnius ir pasukite atgal.

Tai yra sprendimo ašis, skirta paleisti programas „Windows“ paslaugų pavidalu. Ne pats gražiausias, bet toks pat pavadinimas


„Windows NT“ paslauga („Windows NT“ paslauga) yra specialus procesas, galintis suvienodinti sąsają, skirtą sąsajai su „Windows NT“ operacine sistema. Paslaugos skirstomos į du tipus – Win32 paslaugas, kurios sąveikauja su operacine sistema per Service Control Manager (SCM) pagalba, ir tvarkyklę, kuri veikia už tvarkyklės protokolo. „Windows“ priedai NT. Daugiau apie Win32 paslaugas aptarsime šiame straipsnyje.

Paslauga stringa

Viena iš svarbiausių paslaugos galių yra neinteraktyvumas. Įprasta paslauga – nebūtina puikus koristuvach dirbti fono režimas. Dėl paslaugos pobūdžio ji labiausiai tinka šių tipų priedams įgyvendinti:

  • Serveriai kliento-serverio architektūroje (pavyzdžiui, MS SQL, MS Exchange Server)
  • Windows NT paslaugos (serveris, darbo stotis);
  • Atskirų programų (pvz., visų stebėjimo programų) serverio (funkcionalumo prasme) komponentai.

Pagrindinės paslaugų institucijos

Įprastoje Win32 programoje paslaugą valdo trys pagrindinės institucijos. Pažvelkime į juos.

Pirma, galimybė tinkamai sustabdyti (sustabdyti) robotizuotą paslaugą. Coristuvach ar kitas priedas, kuris laimi standartinius mechanizmus, gali pakeisti serviso stotį – išversti її zі stanu vykonannya stan pauzi arba navit zupiniti її į robotą. Kai tarnausiu prieš savo gyvenimo pokyčius, ypač atkreipsiu dėmesį, kam galiu atlikti reikiamą perėjimą į naują būseną, pavyzdžiui, pasiskolinti išteklių.

Kitu būdu galimybė pradėti paslaugą prieš registruojant koristą yra galimybė dirbti be registruotos koristuvachos. Bet kuriuo atveju paslauga gali būti paleista automatiškai operacinės sistemos pradžioje ir leisti robotui paleisti dar prieš jums prisijungiant prie sistemos.

І, nareshti, galimybė dirbti pakankamai nepeck kontekste. „Windows NT“ saugos kontekstas nustato proceso prieigos prie įvairių sistemos objektų ir duomenų rinkinį. Atsižvelgiant į Win32 programą, kuri visada veikia koristuvach saugumo kontekste, šiuo metu registruota sistemoje, paslaugai, saugos kontekstą galima priskirti kitam žingsniui. Tse reiškia, kad paslaugai galite priskirti prieigos teisių rinkinį sistemos objektams už atstumo ir tuo pačiu apjuosti jos veiklos sferą. Šimtas paslaugų naudoja specialų saugos kontekstą, kuris vadinamas vietine sistema. Šiame kontekste veikianti paslauga neturi teisių į vietinio kompiuterio išteklius. Nė viena iš sujungtų operacijų negali būti naudojama su vietinės sistemos leidimais, tačiau jų kontekstas gali būti jautrus vietinis kompiuteris ir neatpažįstami kitų „Merezhі“ kompiuterių.

Paslaugos sąveika su kitomis programomis

Nesvarbu, ar tai būtų programa, jei turite kokių nors teisių, galite bendrauti su savo paslauga. Vzaєmodіya, pershu cherga, perkeliant paslaugos pakeitimą į perkėlimą į vieną iš trijų stanіv - pratsyyuche (Pradėti), pauzė (Pauzė), zupinka, kad zdіysnyuєtsya už papildomą SCM tiekimą. Prašyti trijų tipų - pranešimo apie paslaugų tipus (jų stočių fiksavimą), prašymo pakeisti paslaugos konfigūraciją arba pašalinti informaciją apie ją ir prašyti programų pakeisti paslaugą.

Norėdami valdyti paslaugą, pirmiausia turite laikyti Win32 API OpenService pagalbinės funkcijos rankenėlę. Funkcija StartService paleidžia paslaugą. Jei jums reikia pakeisti paslaugą, jūsų bus paprašyta spustelėti funkciją ControlService.

Paslaugų duomenų bazė

Informacija apie odos paslaugą saugoma registre – raktu HKLM\SYSTEM\CurrentControlSet\Services\ServiceName. Yra tokių vaizdų:

  • Paslaugos tipas. Vkazuє ant tų, kurios tsmu priede įdiegtos tik viena paslauga (išskirtinė) arba їх priede kіlka. Išskirtinė paslauga gali būti taikoma bet kokiame saugos kontekste. „Dekіlka“ paslaugos vienos programos viduryje gali veikti tik „LocalSystem“ kontekste.
  • paleidimo tipas. Automatinis – paslauga paleidžiama paleidžiant sistemą. On vimogu - paslauga paleidžiama rankiniu būdu koristuvach. Išjungta – paslauga negali būti paleista.
  • Modulio, kuris turi būti pavaizduotas piktogramomis, pavadinimas (EXE failas).
  • Pradėkite užsisakyti kitas paslaugas. Kai kuriais atvejais, kad tinkamai veiktų paslauga, būtina pradėti vieną ar kelias kitas paslaugas. Ar norite, kad registras nuskaitytų informaciją apie prieš tai paleidžiamas paslaugas.
  • Paslaugos saugos kontekstas (išsaugau tą slaptažodį). Už reklamos saugos kontekstas nustatytas į LocalSystem.

Programos, kurioms reikia pašalinti informaciją apie paslaugą arba pakeisti tą ar kitą paslaugos parametrą, iš esmės yra atsakingos už informacijos keitimą paslaugų duomenų bazėje registre. Galite paprašyti pagalbos dėl kitų Win32 API funkcijų:

  • OpenSCManager, CreateService, OpenService, CloseServiceHandle – paslaugos uždarymui (atidarymui);
  • QueryServiceConfig, QueryServiceObjectSecurity, EnumDependentServices, EnumServicesStatus – informacijai apie paslaugą gauti;
  • ChangeServiceConfig, SetServiceObjectSecurity, LockServiceDatabase, UnlockServiceDatabase, QueryServiceLockStatus – pakeiskite paslaugos konfigūracijos informaciją.

Vidinis prisirišimas.

Taigi, priedas yra kaltas dėl to, kad yra valdžioje su aukštesniu rangu, o pats - įskaitant paprastą funkcijų rinkinį (C ++ požiūriu) su paprastu funkcionalumu. Trumpai pažvelkime į odą.

pagrindinė funkcija

Matyt, pagrindinė funkcija yra įėjimo taškas į bet kurią Win32 konsolės programą. Paleidus paslaugą, funkcijos kodas bus pataisytas iš anksto. 30 sekundžių po paleidimo pagrindinė funkcija yra atsakinga už kalbos iškvietimą StartServiceCtrlDispatcher, kad būtų sukurtas ryšys tarp SCM programos. Usі komunіkatsії mіzh be-kokia paslauga ką dodatku Tas SCM yra įdiegtas StartServiceCtrlDispatcher funkcijos viduryje, nes jis baigia darbą pradėjus visas programoje esančias paslaugas.

ServiceMain funkcija

Krim zagalnoprotsesnoy įėjimo taškas taip pat yra odos paslaugų įėjimo taškas, įgyvendintas priede. Funkcijų, kurios tarnauja kaip paslaugos įėjimo taškai (paprastumo dėlei pavadinsime jas visas ServiceMain), pavadinimai perduodami SCM vienu parametru per valandą į StartServiceCtrlDispatcher iškvietimą. Kai paleidžiate ServiceMain viscon odos paslaugą, susidaro vandens srovė.

„Otrimavshi keruvannya“, „ServiceMain“ pirmiausia gali užregistruoti užklausų pavyzdį prieš paslaugą, „Handler“ funkciją, savo „Skin“ paslaugai kaip priedą. Po šio ServiceMain, norėdami inicijuoti paslaugą, skambinkite toliau – peržiūrėkite atmintį, dar kartą perskaitykite duomenis. Paslauga vis dar pradedama teikti ir kasdienių gedimų nebuvo. Pranešimai skirti papildomos funkcijos SetServiceStatus pagalbai. Visos savaitės, išskyrus paskutinę, priklauso nuo parametro SERVICE_START_PENDING, o likusios - dėl parametro SERVICE_RUNNING. Skambučių periodiškumą nustato paslaugos teikėjas, kuris, atrodo, kyla iš proto: laiko intervalo tarp dviejų teismo skambučių laikinumas SetServiceStatus nėra atsakingas už dwWaitHint parametro, perduodamo SCM, reikšmės nepaisymą. pirmieji du skambučiai. O jei ne, tai SCM, nenusiėmęs čergovo priminimo valandoje, paleidžia paslaugą su primus primus. Tokiu būdu, įvykus tyliems ar kitokiems gedimams, paslaugų situacija išnyksta pradžioje (manoma, kad paslauga neskamba interaktyviai ir gali būti paleista be gedimo). Zvichayna praktikuoja tai, kad baigus pirmąjį inicijavimo projektą, SCM turėtų būti atnaujintas.

Valdiklio funkcija

Kaip spėjau daugiau, Handler yra atgalinio ryšio funkcijos prototipas, užklausos užklausa prieš paslaugą, savo odos paslauga priedui. Valdiklis iškviečiamas, kai reikia paprašyti paslaugos (paleisti, sustabdyti, atnaujinti, paleisti, įspėti Aš tapsiu eilėje), kad vykonuє nebhіdnі vіdpovіdno prieš zapі dії, po kurio novіdomlyaє nauja stovykla SCM.

Ypač reikšmingas yra vienas prašymas – užklausa, kuri turėtų būti gauta užbaigus robotizuotą sistemą (Shutdown). Tsey paprašys signalo, kad reikia deinicializuoti vikontą ir kad jis bus baigtas. „Microsoft“ teigia, kad odos paslaugai atlikti reikia 20 sekundžių, o po to ji pradeda skambėti kaip primusas. Protestuotojai parodė, kad Umovo protas yra pergalingas ir primuso krosnelės tarnavimas tęsiasi iki tos valandos pabaigos.

Paslaugų apsaugos sistema

Be-yaka diya per paslaugas reikės papildomų teisių iš priedo. Visos programos turi teisę užrakinti SCM, atkurti paslaugas ir dar kartą patikrinti paslaugų duomenų bazės blokavimą. Tik programos gali registruoti naują paslaugą sistemoje arba blokuoti paslaugos duomenų bazę, nes gali turėti administravimo teises.

„Skin“ paslauga gali turėti saugos aprašą, kuriame aprašoma, kaip jai gali būti suteikta teisė į tą kitą operaciją. Norėdami užrakinti:

  • Visos teisės gali būti pakeistos SERVICE_QUERY_CONFIG, SERVICE_QUERY_STATUS, SERVICE_ENUMERATE_DEPENDENTS, SERVICE_INTERROGATE ir SERVICE_USER_DEFINED_CONTROL;
  • Koristuvachі, taip pat norėdami patekti į Power Users grupę ir LocalSystem oblіkovy įrašą, papildomai suteikite teises SERVICE_START, SERVICE_PAUSE_CONTINUE ir SERVICE_STOP;
  • Koristuvachі scho, scho įveskite grupes administratoriai ir sistemos operatoriai, galiu teisę SERVICE_ALL_ACCESS.

Paslaugos ir interaktyvumas

Reklaminiais tikslais interaktyvios paslaugos gali būti apribotos vietinės sistemos saugos kontekste. Taip yra dėl Windows NT atvaizdavimo monitoriaus ekrane ypatumų, pavyzdžiui, tokio objekto kaip "Desktop", robotams būtina turėti reikiamas prieigos teises, kurių kai kurie gali nerodyti. oblіkovogo įrašas, Peržiūrėti vietinę sistemą. Nezvazhayuchi toms mokyklų mainai į perevazhnіy bіlshostі vipadkіv tse obmezhennya Je nesuttєvim bet іnodі іsnuє neobhіdnіst stvoriti tarnyba jakų vivodila b іnformatsіyu ekrane monіtora i-tsomu vikonuvalasya naudojamų kontekstі BEZPEKA vіdmіnnomu od LocalSystem, napriklad, serverių PROG komponentas pradėti programas vіddalenomu kompiuterio.

Kodo fragmentas. Iliustruoju tokią galimybę.

Dėl šio fragmento reikia prašyti užklausos, pridėti dalį programos į RPC, paslauga monitoriaus ekrane rodo tekstinius pranešimus.

Užpakalio paslauga (pagrindiniai fragmentai)

Pažvelkime į pagrindinius mano Z ++ ataskaitos fragmentus, įgyvendinančius Windows NT paslaugą. Siekiant tikslumo, kodo dalys praleidžiamos.

pagrindinė funkcija

Indikacijose – pagrindinės funkcijos kodas.

ServiceMain funkcija

„ServiceMain“ įdedamas ypač kodas, dėl kurio dažnai neįmanoma atidėti kitos operacijos uždelsimo, ypač jei klaidinga, kad operacinėje sistemoje įvyko klaida dėl sudėtingos užduoties. Jei operacija užima daugiau laiko, nei jei parametras SetServiceStatus skambučių intervalas turi valandos intervalą, paslauga negali iš karto išsiųsti būsimo pranešimo, po kurio SCM turėtų paskambinti robotui. Galimų operacijų užpakaliai gali būti naudojami roboto funkcijoms iškviesti esant dideliam laikui arba vienkartiniam didelio kiekio informacijos nuskaitymui dėl pakankamai susidėvėjimo. Be to, toks vaikas absoliučiai nesustingsta mokesčių tarnybos metu, programos šukes prie mokesčių įrangos lydi didelės pauzės, reikalingos mažmenininkui.

Norint išspręsti šią problemą, visos operacijos, susijusios su tarpusavio priklausomybe su SCM, turėtų būti atliekamos sveikame puode, kuris nėra vandenyje, o tai būtina inicijavimo etape.

Rodmenys turi teisingos paslaugos pradžios algoritmą, kuris yra papildomas srautas.

Valdiklio funkcija

Indikacijos turi Handler funkcijos kodą ir papildomus srautus. „Stop“ ir „Shutdown“ užklausoms perrašomas teisingo paslaugos iškvietimo algoritmas, panašus į tą, kuris perrašomas paslaugos pradžioje, tačiau vietoj SERVICE_START_PENDING parametro iš SetserviceStatus yra parametras SERVICE_STOPSERVPENDING. praėjo, o pakeitimas yra SERVICE_RUNNING.

Idealiu atveju, norint gerti "Pauzė" ir "Tęsti", tai taip pat yra kita eilutė, kuri laimėtų eilutę. Dopitlivy chitach gali lengvai įgyvendinti jogą, sukdamasis ant šio užpakalio.

Visnovok

Pabaigoje norėčiau pažymėti, kad perėjus prie „Windows NT 2000“, paslaugų kūrimas pokyčio nepripažino. Paslaugos, kaip ir anksčiau, netenka svarbios dalies programinė įranga„Windows“ platformoje, kuri mažmenininkams suteikia platų veiklos lauką.


// Funkcija panaši į MessageBox Win32 API int ServerMessageBox(RPC_BINDING_HANDLE h, LPSTR lpszText, LPSTR lpszTitle, UINT fuStyle) (DWORD dwThreadId; HWINSTA hwinstaSave; HDesk " ir "DesktopShdtre" = Getindowesktop); Getindowesktop; (); hdeskSave = GetThreadDesktop(dwThreadId); // Pakeiskite saugos kontekstą tame, // kuris yra prieš "Window station" ir "Desktop" // objektus. RpcImpersonateClient(h); hwinstaUser), hdeskUser = OpenDesktop ("Numatytasis", 0, FALSE, MAXIMUM_ALLOWED); RpcRevertToSelf(); urn 0; ) SetThreadDesktop(hdeskUser); // Rodyti standartinį teksto laukelį. result = MessageBox(NULL, lpszText, lpszTitle, fuStyle //); "'Yes Langų stotis" ir „Desktop". SetThreadDesktop(hdeskSave); SetProcessWindowStation(hwinstaSave); CloseDesktop(hdeskUser); CloseWindowStation(hwinstaUser); grąžinti rezultatą; ) void main() ( SERVICE_TABLE_ENTRY) (SERVICE_TABLE_ENTRY) , NULL) ); // Nustatykite ryšį iš SCM. Norėdami gauti ir išsiųsti užklausas, naudokite šių funkcijų vidurį //. StartServiceCtrlDispatcher(steTable); ) negalioja WINAPI ServiceMain (DWORD dwArgc, LPSTR *psArgv) ( // Nedelsdami užregistruokite užklausų tvarkyklę. hSS = RegisterServiceCtrlHandler(SERVICENAME, ServiceHandler); sStatus.dwCheckPoint = 0; sStatus.dwControls.Services. dwServiceSpecus .dwServiceType = SERVICE_WIN32_OWN_PROCESS sStatus.dwWaitHint = 0 sStatus.dwWin32ExitCode = NOERROR // Dėl іnіtsіalіzatsії paslaugos viklikaєtsya funktsіya InitService () ;, Shcho paslaugų protsesі іnіtsіalіzatsії .// vardu sinhronіzatsії srautas stvoryuєtsya Podiya .// Pіslya tsogo zapuskaєtsya robochem potіk, d la // Sinchronizuojant kurią // sukuriama antrinė paslauga inicijavimas.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 = PASLAUGOS_VEIKIMAS; SetServiceStatus(hSS, &sStatus); ) // Gijos funkcija, kuri sekundę siunčia SCM pranešimą // apie tuos, kad vyksta inicijavimo procesas. Roboto funkcija // baigiasi, kai atkuriamas hSendStartPending pod. DWORD WINAPI SendStartPending(LPVOID) ( sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_START_PENDING; sStatus.dwWaitHint = 2000; // "Atidėtas" 1 sekundę. // Net 1 sekundei paslauga nepasibaigė. ), perkrautas dwCheckPoint++;if(WaitForSingleObject(hSendStartPending, 1000)!=WAIT_TIMEOUT) break; ) sStatus.dwCheckPoint = 0; grąžinti 0; ) // Funkcija, kuri inicijuoja paslaugą. Duomenų skaitymas // prisiminimas ir kt. void InitService() (...) // Paslaugos kodo tikrinimo funkcija. DWORD WINAPI ServiceFunc(LPVOID) ( while (true) (if (!bPause) ( // Čia turi būti perduotas kodas, kuris // bus perduotas ciklinėms operacijoms... ) if (WaitForSingleObject(hWork, 1000)!=WAIT_TIMEOUT ) Break; ) grąžinti 0; TRUE, FALSE, NULL), hSendStopThread = CreateThread(NULL, 0, SendStopPending, NULL, 0, & dwThreadId); ) SetEvent(hSendStopPending), CloseHandle(hServiceThread), CloseHandle(hWork); ServiceStatus(hSS, &sBūsena); pertrauka; atvejis SERVICE_CONTROL_PAUSE: bPause = true; sStatus.dwCurrentState = SERVICE_PAUSED; SetServiceStatus(hSS, &sStatus); pertrauka; atvejis SERVICE_CONTROL_CONTINUE: bPause=true; sStatus.dwCurrentState = PASLAUGOS_VEIKIMAS; SetServiceStatus(hSS, &sStatus); pertrauka; atvejis SERVICE_CONTROL_INTERROGATE: SetServiceStatus(hSS, &sStatus); pertrauka; numatytasis: SetServiceStatus(hSS, &sStatus); pertrauka; ) ) // Gijos funkcija, panaši į SendStartPending //, skirta paslaugų daliai. DWORD WINAPI SendStopPending(LPVOID) ( sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_STOP_PENDING; =WAIT_TIMEOUT) pertrauka;) sStatus.dwCheckPoint = 0; grąžinti 0 ;)

Kaip paleisti programą „Windows“ paslaugoje



Ar galite paleisti kliento programą kaip paslaugą? Viename iš straipsnių – „Windows“ paslaugos kūrimo įprastose operacinėse sistemose būdai. Tačiau ne skin konsolės priedas gali būti paleistas kaip paslauga, o programos su grafine sąsaja iš principo taip veikti negali. Bet vis tiek galima paleisti priedą kaip paslaugą ir padėti mums su programa originaliu pavadinimu Nesiurbimo paslaugų vadovas.

NSSM yra tikra programinės įrangos sauga su atviru kodu, kuris palaiko visas operacijas Microsoft sistemos, pradedant nuo Windows 2000 iki Windows 8. NSSM nereikia įdiegti, tiesiog atsisiųskite ir išpakuokite. Platinimas apima 32 ir 64 bitų operacinėms sistemoms skirtas versijas. Programą galite gauti iš svetainės nssm.cc, šiuo metu likusi stabili versija yra 2.21.1, tai aš laimėsiu.
Norėdami parodyti NSSM galią, pabandykime paleisti Windows Notepad kaip Windows 8.1 paslaugą.

Paslaugos kūrimas

Už paslaugos jiems sukūrimą Užrašų knygelė paleidžiame komandų konsolę, einame į aplanką su išpakavimu NSSM (64 bitų Windows) ir įveskite komandą

Kodas:

nssm įdiegti užrašų knygelę

kaip NSSM grafinės diegimo programos langą. Norėdami sukurti paslaugą, tiesiog įveskite kelią į failą į lauką Path ir spustelėkite mygtuką "Įdiegti paslaugą". Be to, lauke Parinktys galite įvesti raktus, kurių reikia norint paleisti paslaugą.

Taip pat naujos paslaugos kūrimo etape galite priskirti papildomus parametrus.

Skirtuke Išjungimas skambėjimo ir skirtojo laiko metodai yra išpirkti, nes jie atkuriami normaliai užbaigus darbą arba nuskambėjus avariniam programos skambučiui. Jei NSSM išjungia garso komandą (pavyzdžiui, kai roboto programa baigta), įjungiamas priedų valdymo pagal personalo rangą garsas. Jei programa neveikia, NSSM gali užbaigti visus programos procesus ir subprocesus.

Usogo є chotiri robotų programos užbaigimo ir vikoristų smarvės plovimo etapai tokia tvarka:

Pirmajame etape NSSM bando sugeneruoti ir išsiųsti komandą Ctrl+C. Šis būdas tinka konsolės priedams ar scenarijams, bet ne grafiniams priedams;
Tada NSSM atpažįsta visus programos sukurtus langus ir nepaiso WM_CLOSE, kuris inicijuoja išėjimą iš programos;
Trečiasis NSSM etapas išvardija visus programos sukurtus srautus ir nepaiso jo WM_QUIT, tarsi jis būtų pašalintas, tarsi programa galėtų iškviesti giją;
Kaip poilsio NSSM užklausą galite iškviesti TerminateProcess() metodą, pirmiausia užbaigdami programos darbą.

Galima įjungti kai kuriuos arba visus metodus, tačiau skirtingoms programoms rekomenduojama naudoti skirtingus metodus, kad robotų programos būtų tinkamai užbaigtos.

Apsiplovimo atveju NSSM paslauga yra priversta paleisti iš naujo її. Skirtuke Išėjimo veiksmai galite pakeisti automatinį veiksmą, jei roboto programa būtų baigta neįprastai, taip pat nustatyti delsą prieš automatiškai paleidžiant programą iš naujo.

Skirtuke „Įvestis / išvestis (I/O)“ galite nustatyti nukreipimą į programos įvestį / išvestį iš failo instrukcijų.

Skirtuke „Aplinka“ galite įdiegti naujus paslaugos pakeitimus arba atitinkamai pakeisti ją.

Be to, negalite naudoti grafinio apvalkalo ir iš karto sukurti paslaugą konsolėje naudodami šią komandą:

Kodas:

nssm įdiegti užrašų knygelę „C:\Windows\system32\notepad.exe“

Paslaugų valdymas

Sukūrę paslaugą NSSM pagalbai, eikime į Services snap-in ir žinosime užrašų knygelės paslaugą. Tiesą sakant, atrodo, kad tai netrukdo kitoms paslaugoms, taip pat galime paleisti, paleisti arba pakeisti paleidimo režimą. Tačiau atminkite, kad nssm.exe nurodytas kaip failas, kurį reikia atsisiųsti.

Ir jei aš eisiu į užduočių tvarkytuvę, pamatysime tokį vaizdą: kaip veikia pagrindinis (batkivsky) procesas NSSM, bloknoto paslauga veikia kaip antrasis antrinis procesas, o Notepad priedas veikia antrame antruoju procesas.

Iš programinės įrangos sistemos žvilgsnio. Visiškai natūralu, kad mes kreipiamės į paslaugų aptarimą „Windows 7“ kontekste. Pirmą kartą kalbėsime apie būdus, kaip optimizuoti „Windows 7“ teikiamas paslaugas. Šis straipsnis priskiriamas prie naujų „Windows“ funkcijos 7 – Paleisties paslaugos. Visų pirma, pereikime prie API, pavadinkime tai dideliu paslaugų paveikslu.

Kas yra paslauga?

Aptarnavimas - ce vidinis mechanizmas, vbudovaniya operacinėje Windows sistema. Galite naudoti paslaugas su specialiomis programomis, kurios veikia nepriklausomai nuo branduolio srautinio perdavimo konteksto. Paslaugos aktyvuojamos specialių programų pavidalu, kurias galima sukonfigūruoti, kad veiktų nuo sistemos įjungimo (užfiksavimo) ir iki išjungimo, neatsižvelgiant į tai, ar yra koristuvacha. Tobto paslaugos gali pratsyuvati, navit akscho koristuvach ne vykonav vkhіd prie sistemos.

Mums svarbu geriau paleisti paslaugas, vykdydami užduotis, kurios veikia fone ir netrukdo atsarginių kopijų kūrimo operacijoms. „Windows“ paslaugos yra atsakingos už visų rūšių foninę veiklą, pradedant nuotolinio procedūrų iškvietimu (RPC), spausdintuvo kaupikliu ir baigiant tinklo vietos suvokimu.

„Windows“ turtingumo dėka augo paslaugų skaičius, o vienu metu – daugėjo. Būkime atviri, „Windows“ foninės paslaugos yra labai skausmingos - Operacinė sistema Užsakymas pristatomas be paslaugų. Be to, nepriklausomi programinės įrangos tiekėjai (ISV) ir šios programos teikia dar daugiau paslaugų. Pavyzdžiui, programinės įrangos atnaujinimo paslaugos. Tuo pačiu metu tarnybos pareigūnai yra kritiškai svarbūs ir reikalingi verbavimo procese, tą valandą, nes reikia kitų kaltų, jei dainuoti koristuvach nepavyksta patekti į sistemą, o kiti nereikalauja paleisti iki jie vadinami. Kad ir kaip būtų, jei pažvelgsite į šiuo metu veikiančių paslaugų sąrašą, ieškokite anoniminių objektų, nes nereikia dirbti pagal 24x7 schemą.

Kas negerai su paslaugomis, ką 24 metai dirba už doba 7 dienas per dieną?

Yra keletas problemų, susijusių su paslaugomis, kurios veikia pagal 24x7 schemą. Visų pirma, galima treniruotis (paspausti foninį režimą), tad kodėl gi to nepanaudojus nauju būdu? Jei kuris nors paleidimo procesas (įskaitant paslaugas) naudoja brangius atminties ir procesoriaus išteklius, jis gali būti naudojamas kitoms paslaugų programoms. Kai atkuriate visas tuo pačiu metu veikiančias paslaugas, atmintyje, rankenose, srautuose ir procesoriaus naudojime kaupiasi smarvė. Visi šie „vitrato“ ištekliai sumažina bendrą kompiuterio našumą ir susidoroja su žala, kad kompiuteris yra silpnas ir galingas. Prieš tai daug servisų šukės buvo nustatytos automatiniam paleidimui (remontas prie sistemos pradžios valandai), jos smirda valandą zawantazhennya kompiuterio.

Kitaip resursų suvartojimą tiesiogiai rodo elektros energijos taupymas. Chim daugiau tuštybės CPU, kompiuteris sutaupo daugiau energijos. Tai gali būti svarbu nešiojamiesiems kompiuteriams ir kelerius metus gali praeiti valandą darbo su baterijomis.

Trečia, neproduktyvios programinės įrangos darbas gali būti įtrauktas į atmintį ir visiškas sistemos nestabilumas. Tse vede prieš avariją robotizuotose programose, nareshti, kompiuteryje.

Nareshti, tarsi paslauga veiktų pagal 24x7 schemą ir tarsi paslauga būtų gera namuose (kaip tai gali pasirodyti populiariose odos programose - pvz. PDF skaitytuvas), kuris sukuria didelį atakos paviršių. Įsibrovėlis gali gauti informaciją apie tai, kad programa yra labai populiari, įdiegti paslaugą, kuri veikia 24x7 režimu ir bandyti įsilaužti, kad neleistų prieiti prie kompiuterio.

Vrakhovuchi visa tai, kas išdėstyta pirmiau, galite stebėtis, kodėl tiek daug mažmenininkų teikia paslaugas nuolatiniam darbui, tarsi smarvė gali būti dar viena galimybė. Iki „Windows 7“ buvo keletas paslaugų paleidimo parinkčių:

  • Neįgalus (Vimkneno) iš naujo įjungti paslaugą ir neleisti paleisti ir paleisti nenaudotų paslaugų - tai reiškia, kad koristuvach yra kaltas, kad rankiniu būdu įjungė paslaugą iš išjungimo skydelio arba komandinės eilutės
  • vadovas paleisti paslaugą vartoti (norint prisijungti prie kitų paslaugų priklausomybių) arba skambinant į paslaugą su programomis papildomoms API, kaip parodyta toliau
  • Automatinis pradėti paslaugą prisijungus
  • Automatinis atidėtas- Windows Vista atsiradęs naujo tipo paleidimas, kurio pagalba paleidžiama paslauga baigus tas pirmąsias operacijas, kurios paspartins sistemos paleidimą.

Deja, daugelis ISV (įskaitant ir pačią „Microsoft“) ir toliau nustato savo paslaugas į Automatic (Automated) arba Automatic Delayed Startup (Automatic Delayed) – visų paprasčiausių sprendimų pavyzdį. Paslauga tiesiog veikia 24x7 ir visada pasiekiama, jei reikia, pakartotinai patikrinti indėlius arba paslauga veikia.

Galima nustatyti anonimines esminių paslaugų aplikacijas, dėl kurių gali sumažėti ženkliai mažiau resursų ir tapti saugesniu, neveikiančiu 24x7 režimu. Pavyzdžiui, pagalvokite apie naujinimo paslaugą, tarsi ji tikrintų, ar nėra naujų programos naujinimų. Jei kompiuteris neprisijungia prie „merezhі“, jis neturi IP adreso, kodėl jis turėtų veikti? Jei nieko negalite padaryti, dabar turėtumėte atimti darbo programą, taigi nieko nedaryti? Pagalvokite apie valdančių politikų paslaugą, kaip laimėti pokyčių valandą grupės politika arba jei kompiuteris prijungtas prie domeno, arba jei kompiuteris prijungtas prie mano namų, paslauga vis tiek įmanoma.

Paslaugų atsiradimas paleidus paleidiklį

Virishennya vyschevkazanyh problemos polygaє vidennі servise zі stan pastovus darbas» Kiti foninės veiklos tipai, pvz., suplanuoti darbai arba paslaugos, kurias suaktyvina aktyviklis. Šis straipsnis yra susijęs su „Windows 7 Trigger Start Services“. Apie „Windows 7“ suplanuotas užduotis galite pasakyti daug dalykų, kurie bus sulaužyti būsimuose straipsniuose.

Spausdintuvai