Hvordan gjør jeg Windows oppmerksom på en tjeneste jeg har skrevet i Python?

stemmer
10

I et annet spørsmål jeg postet i går, jeg fikk veldig gode råd om hvordan en Python-skript kan kjøres som en tjeneste i Windows. Hva jeg er venstre lurer på er: Hvordan er Windows klar over de tjenester som kan administreres i de innfødte verktøy ( tjenester vinduet i administrative verktøy). Dvs. hva er Windows tilsvarer å sette en start / stopp-skript i /etc/init.d under Linux?

Publisert på 29/08/2008 klokken 10:18
kilden bruker
På andre språk...                            


4 svar

stemmer
8

Her er koden for å installere et python-skript som en tjeneste, skrevet i python :)

http://code.activestate.com/recipes/551780/

Dette innlegget kan også hjelpe deg ut:

http://essiene.blogspot.com/2005/04/python-windows-services.html

Svarte 29/08/2008 kl. 10:20
kilden bruker

stemmer
7

Ikke møkk med registeret direkte. Bruker SC kommandolinjeverktøyet. Nemlig SC CREATE

    BESKRIVELSE:
        SC er en kommandolinje program som brukes for å kommunisere med den
        NT Service Controller og tjenester.
    BRUK:
        sc [kommando] [tjenestenavn] ...

        Opsjonen har formen "\\ Server"
        Videre hjelp av kommandoer kan oppnås ved å skrive: "sc [kommando]"
        kommandoer:
          spør ----------- spør status for en tjeneste, eller
                          nummerer status for typer tjenester.
          queryex --------- spør utvidet status for en tjeneste, eller
                          nummerer status for typer tjenester.
          starte ----------- Starter en tjeneste.
          pause ----------- Sender en PAUSE kontroll forespørsel til en tjeneste.
          avhøre ----- Sender en INTERROGATE kontroll forespørsel til en tjeneste.
          fortsette -------- Sender en FORTSETT kontroll forespørsel til en tjeneste.
          stoppe ------------ Sender en STOP forespørsel til en tjeneste.
          konfig ---------- Endrer konfigurasjon av en tjeneste (vedvarende).
          beskrivelse ----- Endrer beskrivelse av en tjeneste.
          svikt --------- Endrer handlinger utført av en tjeneste ved svikt.
          qc -------------- Spørringer konfigurasjonsinformasjonen for en tjeneste.
          qdescription ---- Spørringer beskrivelsen for en tjeneste.
          qfailure -------- spør handlinger utført av en tjeneste ved svikt.
          slette ---------- Sletter en tjeneste (fra registeret).
          skape ---------- Oppretter en tjeneste. (Legger det til registeret).
          kontroll --------- Sender en kontroll til en tjeneste.
          sdshow ---------- Viser en tjenestens sikkerhetsbeskrivelse.
          sdset ----------- Setter en tjenestens sikkerhetsbeskrivelse.
          GetDisplayName - Får Display for en tjeneste.
          GetKeyName ------ Får ServiceKeyName for en tjeneste.
          EnumDepend ------ nummerer service avhengigheter.

        Følgende kommandoer ikke krever et tjenestenavn:
        sc   
          boot ------------ (ok | dårlige) Angir om den siste boot bør
                          lagres som sist kjente-good oppstartskonfigurasjon
          Lås ------------ Låser Tjenesten Database
          QueryLock ------- spør LockStatus for SCManager Database
    EKSEMPEL:
        sc starte MyService
Svarte 03/11/2008 kl. 18:03
kilden bruker

stemmer
3

Som med de fleste "klar" ting i Windows, er svaret "Register".

Ta en titt på denne Microsoft Knowledge Base-artikkel: http://support.microsoft.com/kb/103000

Søk etter "A Win32 program som kan startes av tjenesten Controller og som adlyder tjenestekontrollprotokoll." Dette er den type tjeneste du er interessert i.

Tjenesten registrering (innholdet KEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ myservice) bærer informasjon om tjenesten, inkludert ting som sin kjør beliggenhet, hva du skal gjøre når den svikter (stanse OS?), Må hvilke tjenester startes før dette hva brukeren den kjører som.

Som å betjene kontrollprotokoll, er main () av ​​programmet skal påkalle en Windows API-kall, sette opp tilbakeanrop for start, stopp, pause for tjenesten. Hva du gjør i disse tilbakeanrop er helt opp til deg.

Svarte 29/08/2008 kl. 15:00
kilden bruker

stemmer
0

Du kan bruke srvany.exe fra Windows NT Resource Kit for å lage en brukerdefinert tjeneste som vil dukke opp i admin verktøy ...

http://support.microsoft.com/kb/137890

Jeg bruker denne metoden til å kjøre tracd (en python script / server) for trac.

Her er noen veldig klare instrukser: http://www.tacktech.com/display.cfm?ttid=197

Det krever noen registerredigering (veldig minimal og enkel), men vil tillate deg å gjøre noen kommandolinje / script en Windows-tjeneste.

Svarte 29/08/2008 kl. 15:01
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more