2009-10-28 27 views
6

Şu anda win32service ve win32serviceutil kullanarak bir windows hizmeti olarak çalışan bir python programı üzerinde çalışıyorum. Hizmet gerektiği gibi çalışır ve py2exe kullandıktan sonra bile, her şey yolundadır (hizmet, hedef klasör (ler) ve FTP'nin yeni oluşturulan dosyalarını belirtilen FTP konumuna göre izler). Ancak, yerel ve FTP dizinlerini belirtmek için bazı komut satırı argümanlarını (yükleme, kaldırma, başlatma, durdurma, vb. Ek olarak) eklemek istiyorum. http://www.py2exe.org/old/Python Hizmeti Özel Komut Argümanları

"İsteğe bağlı olarak, geçerli değerler, 'py2exe' (varsayılan) 'pywin32' veya 'olmak üzere bir 'komut_satırı tarzı' py2exe'nin özniteliğini belirtebilirsiniz: Bu sadece dokümantasyon ben buldum budur custom '.' py2exe ', her zaman py2exe tarafından desteklenen geleneksel komut satırını belirtir.' pywin32 ', pywin32 destekleri ile aynı komut satırı argümanlarını destekler (örn., hizmeti .py dosyasından çalıştırırken desteklenen aynı argümanlar.)' custom ', modülünüzün tüm komut satırı işlemlerinden sorumlu bir' HandleCommandLine 'işlevi sağlaması beklenen anlamına gelir. "

Doğru yöne doğrultulduğunda herhangi bir yardım için teşekkür ederiz. Açıklık için herhangi bir kod gerekiyorsa lütfen bana bildirin.

sayesinde Zach

cevap

3

here özel HandleCommandLine classmethod bir hizmeti nasıl güzel bir örnektir - bu pyro bir parçası ama pyro bağımlılıkları yoktur, daha çok bir yardımcı "soyut temel sınıf" olduğunu alt sınıfınızda sadece birkaç şey ayarlayarak, en az yaygara ile giden bir hizmeti alt sınıflara ayırabilir ve alabilirsiniz. Özel ihtiyaçlarınız için, istediğiniz komut satırı işlemlerini almak için kopyalamak ve düzenlemek üzere bir şablon olarak kullanabilirsiniz!

+0

Sadece ihtiyacım olan şey bu olabilir, koduma uyguladıktan sonra gönderirim. –

+0

Bu ilginç bir düzeltme oldu. Temel olarak, BasicNTService, soyut temel sınıf servis parametrelerini normal olarak alır (yükleme, kaldırma, güncelleme, vb ...). Ardından, kayıt sırasında saklanan ve alınan ek parametreler için komut satırında yeni bir komut istemi vardır. –

İlgili konular