Cum se execută orice program ca serviciu de fundal în Windows
Dacă sunteți ca majoritatea utilizatorilor de Windows, aveți foarte multe utilități foarte mici care se execută atunci când porniți Windows. În timp ce acest lucru funcționează excelent pentru majoritatea aplicațiilor, există unele care ar fi frumos să înceapă chiar înainte ca un utilizator să se conecteze la PC. Pentru a face acest lucru, va trebui să rulați aplicația ca serviciu Windows.
Serviciile Windows sunt o clasă specială de programe configurate pentru a lansa și a rula în fundal, de obicei fără interfața de utilizator și fără a avea nevoie de un utilizator să se conecteze la PC. Mulți gameri și utilizatori de putere le cunosc ca acele lucruri pe care le-ați folosit pentru a le dezactiva pentru a vă grăbi sistemul, deși acest lucru nu este necesar.
Avantajul principal al difuzării unei aplicații ca serviciu este că puteți avea un program de pornire înainte ca un utilizator să se conecteze. Acest lucru poate fi deosebit de important în cazul aplicațiilor care furnizează servicii importante pe care doriți să le aveți la dispoziție atunci când nu sunteți la computer.
Un exemplu perfect al acestui lucru este Plex, o aplicație server media care poate transmite conținut local la aproape orice dispozitiv pe care îl dețineți. Sigur, l-ai putea lăsa să stea în tava de sistem ca un program normal, dar ce se întâmplă dacă computerul se repornește din cauza unei întreruperi de alimentare sau a actualizărilor programate? Până când nu vă conectați la PC, Plex nu ar fi disponibil. Asta e iritant daca trebuie sa fugi in alta camera pentru a incepe Plex inapoi in timp ce popcornul devine rece si super iritant daca esti afara orasului si incerci sa iti transmita stream-urile prin Internet. Setarea serviciului Plex ca serviciu ar rezolva această problemă.
Înainte de a începe, trebuie să fiți conștienți de câteva avertismente importante pentru a rula o aplicație ca serviciu:
- Aplicația nu va pune o pictogramă în tava de sistem. Dacă aveți nevoie de interfața disponibilă în mod regulat pentru o aplicație, este posibil ca aceasta să nu fie cea mai potrivită pentru a fi difuzată ca serviciu.
- Când trebuie să efectuați modificări de configurație sau actualizări, va trebui să opriți serviciul, să executați programul ca o aplicație obișnuită, să faceți ceea ce trebuie să faceți, să opriți programul și apoi să reporniți din nou serviciul.
- Dacă programul este deja setat să se execute la pornirea Windows, va trebui să îl dezactivați astfel încât să nu ajungeți la două instanțe în execuție. Majoritatea programelor au o opțiune în interfață pentru comutarea acestei setări. Alții se pot adăuga în folderul Startup, pentru a le elimina acolo.
Sunteți gata să mă dați? Hai să vorbim despre cum să-l punem în scenă.
Pasul unu: Instalarea programului SrvStart
Pentru a rula o aplicație ca serviciu, veți avea nevoie de o utilitate mică, terță parte. Există mai multe acolo, dar preferatul nostru este SrvStart. Acesta a fost inițial conceput pentru Windows NT și va funcționa cu aproape orice versiune de Windows din Windows XP.
Pentru a începe, mergeți la pagina de descărcare SrvStart și apucați utilitarul. Descărcarea conține doar patru fișiere (două fișiere DLL și două fișiere EXE). Nu există instalator; în schimb, copiați-le în computer C: \ Windows
folderul în directorul Windows principal pentru a "instala" SrvStart.
De asemenea, vom presupune că ați instalat deja și ați stabilit orice program pe care îl veți transforma într-un serviciu, dar dacă nu ați făcut-o, acum ar fi un moment bun și pentru a face acest lucru.
Pasul al doilea: creați un fișier de configurare pentru noul serviciu
Apoi, veți dori să creați un fișier de configurare pe care SrvStart îl va citi pentru a crea serviciul. Există multe lucruri pe care le puteți face cu programul SrvStart și puteți citi detaliile complete despre toate opțiunile de configurare de pe pagina de documentare. Pentru acest exemplu, vom folosi doar două comenzi: lansare
, care specifică programul de lansare și shutdown_method
, care îi spune lui SrvStart cum să închidă programul când serviciul respectiv este oprit.
Porniți Notepad-ul și creați fișierul de configurare utilizând formatul de mai jos. Aici, folosim Plex, dar puteți crea un fișier pentru orice program pe care doriți să îl rulați ca serviciu. lansare
comanda specifică pur și simplu calea în care se află fișierul executabil. Pentru shutdown_method
comanda, noi folosim winmessage
parametru, care determină SrvStart să trimită un mesaj de închidere Windows la orice ferestre deschise de serviciu.
[Plex] startup = "C: \ Program Files (x86) \ Plex \ Media Server \ Plex Media Server.exe" shutdown_method = winmessage
Evident, ajustați calea și numele în funcție de programul pe care îl lansați.
Salvați noul fișier de configurare oriunde doriți și înlocuiți extensia .txt cu o extensie .ini. Notați numele fișierului, deoarece vom avea nevoie de el în pasul următor. Pentru a facilita tastarea la Command Prompt, vă sugerăm să salvați temporar acest fișier pe unitatea dvs. C:.
Pasul al treilea: Utilizați linia de comandă pentru a crea noul serviciu
Următorul pas este să utilizați comanda Windows Service Controller (SC) pentru a crea noul serviciu pe baza criteriilor din fișierul de configurare. Deschideți promptul de comandă făcând clic cu butonul din dreapta pe meniul Start (sau apăsând pe Windows + X), selectând "Command Prompt (Admin)" și apoi dând clic pe Yes pentru a permite acestuia să ruleze cu privilegii administrative.
La Command Prompt, utilizați următoarea sintaxă pentru a crea noul serviciu:
SC CREATE Afișare nume = "" binpath = "srvstart.exe -c" start =
Există câteva lucruri de remarcat în acea comandă. Mai întâi, fiecare semn egal (=) are un spațiu după el. Asta e necesar. De asemenea valoarea depinde în întregime de dvs. Și, în cele din urmă, pentru
valoare, veți dori să utilizați
auto
astfel încât serviciul să pornească automat cu Windows.
Astfel, în exemplul nostru Plex, comanda ar arăta astfel:
SC CREATE Plex Nume afișat = "Plex" binpath = "srvstart.exe Plex -c C: PlexService.ini" start = auto
Da, ați citit acest drept: am folosit C: PlexService.ini
in loc de C: \ PlexService.ini
. Comanda solicită eliminarea slash-ului.
Când executați comanda, ar trebui să primiți un mesaj SUCCESS dacă totul merge bine.
Din acest moment, noul dvs. serviciu va rula de fiecare dată când Windows pornește. Dacă deschideți interfața Windows Services (doar faceți clic pe Start și tastați "Services"), puteți găsi și configura noul serviciu la fel ca și dvs..
Și asta e totul pentru asta. Dacă aveți aplicații care încep cu Windows și preferați să pornească fără a avea nevoie de un utilizator pentru a vă conecta, este suficient de ușor să transformați orice aplicație într-un serviciu. Doar am atins metoda bazată pe crearea și rularea unui nou serviciu, dar puteți face mult mai mult cu programul SrvStart pentru a regla cum funcționează un serviciu. Asigurați-vă că verificați documentația dacă doriți să aflați mai multe.