Nasıl Python içinde yazdım bir hizmetin, Windows farkında yapabilirim?

oy
10

Gelen başka bir soru dün yayınlanan, bir Python komut Windows bir hizmet olarak çalıştırılabilir nasıl çok iyi bir tavsiye var. Ne ben merak kalan tek şey şudur: Nasıl Windows doğal araçlarında yönetilen ( idari araçlar nde hizmetler pencere) olabilir hizmetlerin farkındadır. I. e. Linux altında /etc/init.d bir start / stop komut koyarak Windows eşdeğer nedir?

Oluştur 29/08/2008 saat 09:18
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
8

İşte Python ile yazılmış bir hizmet olarak bir piton-komut dosyası yüklemek için kodudur :)

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

Bu mesaj aynı zamanda size yardımcı olabilir:

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

Cevap 29/08/2008 saat 09:20
kaynak kullanıcı

oy
3

Windows'un en "farkında" şeyde olduğu gibi, cevap "Kayıt" dir.

Bu Microsoft Bilgi Bankası makalesine göz atın http://support.microsoft.com/kb/103000

arama "Hizmet Denetleyicisi tarafından başlatılmış ve bu servis kontrol protokole uyar edilebilir bir Win32 programı." Bu ilgilendiğiniz hizmet türüdür.

(MyService \ CurrentControlSet \ Services \ KEY_LOCAL_MACHINE \ SYSTEM içeriği) hizmeti kaydı o (OS durdurmak?) Başarısız olduğunda ne yapacağını onun çalıştırılabilir yer gibi dahil hizmete ilişkin bilgileri taşır, hangi hizmetlerin bu daha önce başlatılmalıdır , hangi kullanıcı o kadar çalışır.

Kontrol protokolü hizmete gibi, ana () programınızın hizmetinize duraklatma, durdurma, başlangıç ​​için geri aramalar kurma, Windows API çağrısını çağırmak gerekiyordu. Ne o geri aramalar yapmak tüm size bağlıdır.

Cevap 29/08/2008 saat 14:00
kaynak kullanıcı

oy
0

Sen yönetici araçları görünecektir kullanıcı tanımlı bir hizmet oluşturmak için Windows NT Kaynak Seti Srvany.exe kullanabilirsiniz ...

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

Ben pistte için tracd (a Python komut / sunucu) çalıştırmak için bu yöntemi kullanıyorum.

İşte bazı çok açık talimatlar verilmiştir: http://www.tacktech.com/display.cfm?ttid=197

O (çok az ve kolay) bazı kayıt defteri düzenleme gerektirir ancak herhangi bir komut satırı / script bir windows hizmeti yapmaya izin verecektir.

Cevap 29/08/2008 saat 14:01
kaynak kullanıcı

oy
7

doğrudan kayıt ile muck vermeyin. Kullanıcı SC komut satırı aracı. Yani, SC CREATE

    AÇIKLAMA:
        SC ile iletişim kurmak için kullanılan bir komut satırı programıdır
        NT Servis Kontrolör ve hizmetler.
    KULLANIM:
        sc [komut] [hizmet adı] ...

        opsiyon forma sahiptir "\\ ServerName"
        "Sc [komutunu]": komutlar ile ilgili diğer yardım yazarak elde edilebilir
        Komutlar:
          Sorgu ----------- bir hizmet için durumunu sorgular, ya
                          hizmet türleri için durumunu sıralar.
          queryex --------- bir hizmet için genişletilmiş durumunu sorgular, ya
                          hizmet türleri için durumunu sıralar.
          ----------- bir hizmeti başlatır başlatın.
          pause ----------- bir hizmete bir PAUSE kontrol isteği gönderir.
          sorguya ----- bir hizmete bir INTERROGATE kontrolü isteği gönderir.
          -------- Bir servisle DEVAM kontrol isteği gönderir devam ediyor.
          ------------ Bir servisle DUR isteği gönderir durdurun.
          yapılandırma ---------- bir hizmet (kalıcı) yapılandırmasını değiştirir.
          açıklama ----- bir hizmetin açıklamasını değiştirir.
          başarısızlık --------- başarısızlık üzerine bir servis tarafından gerçekleştirilen eylemlerin değiştirir.
          qc -------------- Bir hizmetin yapılandırma bilgilerini sorgular.
          qdescription ---- Bir hizmetin açıklamasını sorgular.
          qfailure -------- başarısızlık üzerine bir servis tarafından gerçekleştirilen eylemlerin sorgular.
          ---------- (kayıt defterinden) bir hizmeti siler silin.
          oluşturmak ---------- bir hizmeti oluşturur. (Kayıt defterine ekler).
          Kontrol --------- bir hizmete bir denetim gönderir.
          sdshow ---------- Bir hizmetin güvenlik tanımlayıcısı görüntüler.
          sdset ----------- Bir hizmetin güvenlik tanımlayıcısı ayarlar.
          GetDisplayName - Bir hizmetin DisplayName alır.
          GetKeyName ------ Bir hizmetin ServiceKeyName alır.
          EnumDepend ------ Servis bağımlılıklar sıralar.

        Aşağıdaki komutlar bir hizmet adı gerekmez:
        sc   
          Önyükleme ------------ (Tamam | kötü) olsun son çizme gerektiğini belirtir
                          bilinen en son iyi önyükleme yapılandırması olarak kaydedilebilir
          Kilit ------------ Servis Veritabanı kilitler
          QueryLock ------- SCMANAGER Veritabanı LockStatus sorgular
    ÖRNEK:
        MyService sc start
Cevap 03/11/2008 saat 17:03
kaynak kullanıcı

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