Πώς μπορώ να κάνω το Windows γνώση μιας υπηρεσίας που έχω γραμμένο σε Python;

ψήφοι
10

Σε άλλη ερώτηση που δημοσιεύτηκε χθες, πήρα πολύ καλές συμβουλές για το πώς μια Python script μπορεί να τρέξει ως υπηρεσία των Windows. Τι είμαι αριστερά αναρωτιούνται είναι: Πώς είναι τα Windows γνωρίζουν τις υπηρεσίες που μπορούν να αντιμετωπιστούν με τα εγγενή εργαλεία (παράθυρο «υπηρεσίες» σε «εργαλεία διαχείρισης»). I. ε. ποιο είναι το ισοδύναμο των Windows βάζοντας ένα start / stop script στο /etc/init.d στο Linux;

Δημοσιεύθηκε 29/08/2008 στις 09:18
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
8

Εδώ είναι ο κωδικός για να εγκαταστήσετε ένα python-σενάριο ως υπηρεσία, γραμμένο σε python :)

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

Αυτή η θέση θα μπορούσε επίσης να σας βοηθήσει:

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

Απαντήθηκε 29/08/2008 στις 09:20
πηγή χρήστη

ψήφοι
3

Όπως με τα περισσότερα «γνωρίζουν» τα πράγματα στα Windows, η απάντηση είναι «Μητρώο».

Ρίξτε μια ματιά σε αυτό το άρθρο της Γνωσιακής Βάσης της Microsoft: http://support.microsoft.com/kb/103000

Αναζήτηση για «Ένα πρόγραμμα Win32 που μπορεί να ξεκινήσει από τον ελεγκτή υπηρεσίας και ότι υπακούει το πρωτόκολλο ελέγχου υπηρεσίας.» Αυτό είναι το είδος της υπηρεσίας που σας ενδιαφέρει.

Η καταχώρηση υπηρεσίας (περιεχόμενο της KEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ myservice) μεταφέρει πληροφορίες σχετικά με την υπηρεσία, συμπεριλαμβανομένων των πραγμάτων όπως εκτελέσιμο θέση του, τι πρέπει να κάνουμε όταν αποτυγχάνει (σταματήσει το λειτουργικό σύστημα;), τι υπηρεσίες θα πρέπει να αρχίσει πριν από αυτό , τι χρήστης τρέχει σαν.

Όσον αφορά την εξυπηρέτηση πρωτόκολλο ελέγχου, main () του προγράμματος σας υποτίθεται ότι θα επικαλεστεί μια κλήση API των Windows, για τη δημιουργία callbacks για την έναρξη, διακοπή, παύση για την υπηρεσία σας. Τι να κάνετε σε αυτές τις επιστροφές κλήσεων είναι όλα στο χέρι σας.

Απαντήθηκε 29/08/2008 στις 14:00
πηγή χρήστη

ψήφοι
0

Μπορείτε να χρησιμοποιήσετε srvany.exe από Kit των Windows NT Resource να δημιουργήσετε μια καθορισμένη υπηρεσία των χρηστών που θα εμφανιστούν στα εργαλεία διαχειριστή ...

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

Είμαι χρησιμοποιώντας αυτή τη μέθοδο για να τρέξει tracd (ένα python script / server) για trac.

Εδώ είναι μερικές πολύ σαφείς οδηγίες: http://www.tacktech.com/display.cfm?ttid=197

Αυτό απαιτεί κάποια επεξεργασία του μητρώου (πολύ ελάχιστες και εύκολο), αλλά θα σας επιτρέψει να κάνετε οποιαδήποτε εντολή γραμμής / script υπηρεσία των Windows.

Απαντήθηκε 29/08/2008 στις 14:01
πηγή χρήστη

ψήφοι
7

Μην βόρβορος με το μητρώο άμεσα. Ο χρήστης το SC εργαλείο γραμμής εντολών. Δηλαδή, SC ΔΗΜΙΟΥΡΓΙΑ

    ΠΕΡΙΓΡΑΦΗ:
        SC είναι ένα πρόγραμμα γραμμής εντολών που χρησιμοποιούνται για την επικοινωνία με το
        NT Service Controller και υπηρεσιών.
    ΧΡΗΣΗ:
        sc [εντολή] [όνομα υπηρεσίας] ...

        Η επιλογή έχει τη μορφή «\\ ServerName»
        Περαιτέρω βοήθεια στις εντολές μπορεί να επιτευχθεί με την πληκτρολόγηση: «sc [εντολή]»
        εντολές:
          ερώτημα ----------- Ελέγχει την κατάσταση για μια υπηρεσία, ή
                          απαριθμεί την κατάσταση για τους τύπους των υπηρεσιών.
          queryex --------- Ελέγχει την εκτεταμένη κατάσταση για μια υπηρεσία, ή
                          απαριθμεί την κατάσταση για τους τύπους των υπηρεσιών.
          ξεκινήσει ----------- Ξεκινά μια υπηρεσία.
          παύση ----------- Στέλνει ένα αίτημα ελέγχου PAUSE σε μια υπηρεσία.
          ανακρίνουν ----- στέλνει ένα αίτημα ελέγχου INTERROGATE σε μια υπηρεσία.
          συνεχίσει -------- Στέλνει ένα αίτημα ελέγχου ΣΥΝΕΧΙΣΤΕ σε μια υπηρεσία.
          να σταματήσει ------------ Στέλνει ένα αίτημα STOP σε μια υπηρεσία.
          config ---------- Αλλάζει τη διαμόρφωση μιας υπηρεσίας (επίμονη).
          Περιγραφή ----- Αλλάζει την περιγραφή μιας υπηρεσίας.
          αποτυχία --------- Αλλάζει τις δράσεις που έχουν αναληφθεί από την υπηρεσία μετά την αποτυχία.
          qc -------------- Ελέγχει τις πληροφορίες διαμόρφωσης για μια υπηρεσία.
          qdescription ---- Ελέγχει την περιγραφή μιας υπηρεσίας.
          qfailure -------- Ελέγχει τις δράσεις που έχουν αναληφθεί από την υπηρεσία μετά την αποτυχία.
          διαγράψετε ---------- Διαγράφει μια υπηρεσία (από το μητρώο).
          δημιουργούν ---------- Δημιουργεί μια υπηρεσία. (Προσθέτει στο μητρώο).
          ελέγχου --------- Στέλνει ένα στοιχείο ελέγχου σε μια υπηρεσία.
          sdshow ---------- Εμφανίζει περιγραφή ασφαλείας μιας υπηρεσίας.
          sdset ----------- Ορίζει περιγραφή ασφαλείας μιας υπηρεσίας.
          GetDisplayName - παίρνει το εμφανιζόμενο όνομα για μια υπηρεσία.
          GetKeyName ------ παίρνει την ServiceKeyName για μια υπηρεσία.
          EnumDepend ------ Απαριθμεί Υπηρεσία εξαρτήσεις.

        Οι παρακάτω εντολές δεν απαιτούν ένα όνομα υπηρεσίας:
        sc   
          εκκίνησης ------------ (ok | κακή) Υποδεικνύει αν η τελευταία εκκίνηση θα πρέπει να
                          να αποθηκευτεί ως η τελευταία γνωστή καλή ρύθμιση παραμέτρων εκκίνησης
          Κλειδώστε ------------ Κλειδώνει τη βάση δεδομένων της υπηρεσίας
          QueryLock ------- Ελέγχει την LockStatus για τη βάση δεδομένων SCManager
    ΠΑΡΑΔΕΙΓΜΑ:
        sc ξεκινήσει MyService
Απαντήθηκε 03/11/2008 στις 17:03
πηγή χρήστη

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