Μπορείτε να ρυθμίσετε τη λειτουργία των υπηρεσιών σε έναν ειδικό διαχειριστή των Windows. Για να το ανοίξετε, χρησιμοποιήστε τον συνδυασμό πλήκτρων Windows + R, πληκτρολογήστε services.msc στη γραμμή που εμφανίζεται και πατήστε Enter. Θα δείτε το ίδιο ή παρόμοιο (αν έχετε μία από τις παλαιότερες εκδόσεις του λειτουργικού συστήματος) παράθυρο:

Ο διαχειριστής εμφανίζει τις υπηρεσίες σε μορφή πίνακα. Εδώ μπορείτε να δείτε μια λίστα με τις διαθέσιμες υπηρεσίες, να διαβάσετε τις σύντομες περιγραφές τους και να μάθετε την τρέχουσα κατάστασή τους. Ιδιαίτερη σημασία έχει η στήλη «Τύπος εκκίνησης». Είναι αυτός που δείχνει εάν μια συγκεκριμένη υπηρεσία είναι ενεργοποιημένη και σε ποια λειτουργία εκκινείται από το σύστημα.

Κάνοντας διπλό κλικ σε μία από τις υπηρεσίες, θα ανοίξετε ένα παράθυρο στο οποίο μπορείτε να την απενεργοποιήσετε. Απλώς ανοίξτε το στοιχείο "Startup Type", επιλέξτε "Disabled" και κάντε κλικ στο "OK". Αλλά μεταξύ άλλων επιλογών εκκίνησης υπάρχει μια τιμή "Μη αυτόματη". Για λόγους ασφαλείας, επιλέξτε αυτό για όλες τις υπηρεσίες που θέλετε να απενεργοποιήσετε. Αυτό θα επιτρέψει στο σύστημα να ξεκινήσει τις υπηρεσίες όταν είναι πραγματικά απαραίτητες και να μην σπαταλήσει χρόνο σε αυτές τον υπόλοιπο χρόνο.

Μην απενεργοποιείτε εντελώς τις υπηρεσίες, αλλά αλλάξτε τις μόνο σε χειροκίνητη λειτουργία.

Οι υπηρεσίες που αναφέρονται παρακάτω δεν είναι κρίσιμες για τη λειτουργία του συστήματος και πολλοί χρήστες μπορούν να κάνουν χωρίς αυτές. Επομένως, μπορείτε να ρυθμίσετε αυτές τις υπηρεσίες σε χειροκίνητη λειτουργία. Φροντίστε να διαβάσετε τη σύνοψη πριν κάνετε αλλαγές, ώστε να μην διακόπτετε τις υπηρεσίες που σας ενδιαφέρουν.

Ορισμένες υπηρεσίες στη λίστα μας ενδέχεται να είναι ήδη εντελώς απενεργοποιημένες στον υπολογιστή σας ή να λειτουργούν αρχικά σε χειροκίνητη λειτουργία. Σε αυτή την περίπτωση, απλώς παραλείψτε τα.

Εσφαλμένες ενέργειες κατά τη διαδικασία διαμόρφωσης των υπηρεσιών μπορεί να οδηγήσουν σε εσφαλμένη λειτουργία του συστήματος. Κάνοντας αλλαγές, αναλαμβάνετε την ευθύνη.

Για να τεθούν σε ισχύ οι αλλαγές, φροντίστε να επανεκκινήσετε τον υπολογιστή σας μετά τη διαμόρφωση.

Υπηρεσίες Windows που μπορούν να αλλάξουν σε χειροκίνητη λειτουργία

Τα ρωσικά ονόματα ορισμένων υπηρεσιών σε αυτήν τη λίστα ενδέχεται να διαφέρουν από αυτά που βλέπετε στον υπολογιστή σας. Αλλά αυτό ισχύει μόνο για τη διατύπωση. Εάν δεν μπορείτε να βρείτε την υπηρεσία που χρειάζεστε με το ακριβές όνομά της, αναζητήστε επιλογές που έχουν παρόμοια σημασία.

Windows 10

  • Λειτουργικότητα για συνδεδεμένους χρήστες και τηλεμετρία (Συνδεδεμένες εμπειρίες χρήστη και τηλεμετρία).
  • Υπηρεσία Διαγνωστικής Παρακολούθησης.
  • dmwappushsvc.
  • Λήψη Διαχείριση Χαρτών - εάν δεν χρησιμοποιείτε την εφαρμογή Χαρτών.
  • Αγγίξτε το πληκτρολόγιο και την υπηρεσία πίνακα χειρογράφου.
  • Υπηρεσία Windows Defender.

Windows 8/8.1

  • Υπηρεσία διαγνωστικής πολιτικής.
  • Client Tracking Distributed Link - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Βοηθός IP - εάν δεν χρησιμοποιείτε σύνδεση IPv6.
  • Υπηρεσία Βοηθού συμβατότητας προγράμματος.
  • Ουρά εκτύπωσης - εάν δεν έχετε εκτυπωτή.
  • Απομακρυσμένο μητρώο - αυτή η υπηρεσία μπορεί να απενεργοποιηθεί πλήρως.
  • Δευτερεύουσα σύνδεση.
  • Κέντρο ασφαλείας.
  • Μονάδα υποστήριξης NetBIOS μέσω TCP/IP (TCP/IP NetBIOS Helper).
  • Υπηρεσία αναφοράς σφαλμάτων των Windows.
  • Λήψη εικόνας των Windows (WIA) - εάν δεν έχετε σαρωτή.
  • Αναζήτηση Windows - εάν δεν χρησιμοποιείτε την Αναζήτηση των Windows.

Windows 7

  • Πρόγραμμα περιήγησης υπολογιστή - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Υπηρεσία διαγνωστικής πολιτικής.
  • Client Tracking Distributed Link - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Βοηθός IP - εάν δεν χρησιμοποιείτε σύνδεση IPv6.
  • Αρχεία εκτός σύνδεσης.
  • Υπηρεσία απαριθμητή φορητών συσκευών.
  • Ουρά εκτύπωσης - εάν δεν έχετε εκτυπωτή.
  • Προστατευμένη αποθήκευση.
  • Απομακρυσμένο μητρώο - αυτή η υπηρεσία μπορεί να απενεργοποιηθεί πλήρως.
  • Δευτερεύουσα σύνδεση.
  • Κέντρο ασφαλείας.
  • Διακομιστής - εάν ο υπολογιστής δεν χρησιμοποιείται ως διακομιστής.
  • Μονάδα υποστήριξης NetBIOS μέσω TCP/IP (TCP/IP NetBIOS Helper).
  • Υπηρεσία αναφοράς σφαλμάτων των Windows.
  • Αναζήτηση Windows - εάν δεν χρησιμοποιείτε την Αναζήτηση των Windows.

Windows Vista

  • Πρόγραμμα περιήγησης υπολογιστή - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Desktop Window Manager Session Manager - εάν δεν χρησιμοποιείτε το θέμα Aero.
  • Υπηρεσία διαγνωστικής πολιτικής.
  • Client Tracking Distributed Link - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Αρχεία εκτός σύνδεσης.
  • Υπηρεσία απαριθμητή φορητών συσκευών.
  • Ουρά εκτύπωσης - εάν δεν έχετε εκτυπωτή.
  • ReadyBoost.
  • Απομακρυσμένο μητρώο - αυτή η υπηρεσία μπορεί να απενεργοποιηθεί πλήρως.
  • Δευτερεύουσα σύνδεση.
  • Κέντρο ασφαλείας.
  • Διακομιστής - εάν ο υπολογιστής δεν χρησιμοποιείται ως διακομιστής.
  • Υπηρεσία εισόδου υπολογιστή tablet.
  • Μονάδα υποστήριξης NetBIOS μέσω TCP/IP (TCP/IP NetBIOS Helper).
  • Θέματα - εάν χρησιμοποιείτε το κλασικό θέμα των Windows.
  • Υπηρεσία αναφοράς σφαλμάτων των Windows.
  • Windows Media Center Service Launcher.
  • Αναζήτηση Windows - εάν δεν χρησιμοποιείτε την Αναζήτηση των Windows.

Windows XP

  • Alerter.
  • Πρόγραμμα περιήγησης υπολογιστή - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Client Tracking Distributed Link - εάν ο υπολογιστής δεν είναι συνδεδεμένος σε κανένα δίκτυο.
  • Υπηρεσία ευρετηρίου - εάν δεν χρησιμοποιείτε την Αναζήτηση των Windows.
  • Τείχος προστασίας Διαδικτύου (ICF) / Κοινή χρήση σύνδεσης στο Διαδίκτυο (ICS).
  • Υπηρεσία Messenger.
  • Απομακρυσμένο μητρώο - αυτή η υπηρεσία μπορεί να απενεργοποιηθεί πλήρως.
  • Δευτερεύουσα σύνδεση.
  • Διακομιστής - εάν ο υπολογιστής δεν χρησιμοποιείται ως διακομιστής.
  • Υπηρεσία επαναφοράς συστήματος.
  • Μονάδα υποστήριξης NetBIOS μέσω TCP/IP (TCP/IP NetBIOS Helper).
  • Αδιάκοπη παροχή ενέργειας.
  • Διαχειριστής μεταφόρτωσης.
  • Ασύρματη διαμόρφωση (Wireless Zero Configuration).

Τελευταία ενημέρωση: 31/10/2015

Ένα από τα πιο σημαντικά στοιχεία του λειτουργικού συστήματος Windows είναι οι υπηρεσίες. Στην πραγματικότητα, πρόκειται για ξεχωριστές εφαρμογές που δεν διαθέτουν γραφική διεπαφή και που εκτελούν διάφορες εργασίες στο παρασκήνιο. Οι υπηρεσίες μπορούν να ξεκινήσουν κατά την εκκίνηση του λειτουργικού συστήματος ή οποιαδήποτε άλλη στιγμή εργάζεται ο χρήστης. Ένα συνηθισμένο παράδειγμα υπηρεσιών είναι διάφοροι διακομιστές ιστού που ακούν στο παρασκήνιο μια συγκεκριμένη θύρα για συνδέσεις και εάν υπάρχουν συνδέσεις, αλληλεπιδρούν μαζί τους. Μπορεί επίσης να είναι διάφορες βοηθητικές υπηρεσίες ενημέρωσης για άλλα εγκατεστημένα προγράμματα που επικοινωνούν με τον διακομιστή για να μάθουν εάν υπάρχει νέα έκδοση της εφαρμογής. Γενικά, μπορούμε να ανοίξουμε τον πίνακα υπηρεσιών και να δούμε μόνοι μας όλες τις εγκατεστημένες και εκτελούμενες υπηρεσίες:

Ας δούμε πώς να δημιουργήσετε τις δικές σας υπηρεσίες σε C#. Ως εργασία που θα υλοποιηθεί, θα επιλέξουμε να παρακολουθούμε τις αλλαγές σε έναν συγκεκριμένο φάκελο στο σύστημα αρχείων. Τώρα ας δημιουργήσουμε μια υπηρεσία για να την εκτελέσουμε.

Αρχικά, ας δημιουργήσουμε ένα νέο έργο, το οποίο θα είναι τύπου Windows Service. Ας ονομάσουμε το έργο FileWatcherService:

Στη συνέχεια, το Visual Studio δημιουργεί ένα έργο που έχει όλα όσα χρειάζεστε. Αν και δεν χρειάζεται απαραίτητα να επιλέξουμε αυτόν τον τύπο έργου, θα μπορούσαμε να δημιουργήσουμε ένα έργο βιβλιοθήκης κλάσεων και στη συνέχεια να ορίσουμε όλες τις απαραίτητες κλάσεις σε αυτό.

Έτσι το νέο έργο μοιάζει με αυτό:

Υπάρχει επίσης ένα αρχείο Program.cs και υπάρχει ο πραγματικός κόμβος υπηρεσίας Service1.cs.

Η υπηρεσία αντιπροσωπεύει μια κανονική εφαρμογή, αλλά δεν ξεκινά από μόνη της. Όλες οι κλήσεις και η πρόσβαση σε αυτό πραγματοποιούνται μέσω του διαχειριστή ελέγχου υπηρεσιών (Service Control Manager ή SCM). Όταν μια υπηρεσία ξεκινά αυτόματα κατά την εκκίνηση του συστήματος ή με μη αυτόματο τρόπο, η SCM καλεί τη μέθοδο Main στην κλάση Program:

Πρόγραμμα στατικής κλάσης ( static void Main() ( ServiceBase ServicesToRun; ServicesToRun = new ServiceBase ( new Service1()); ServiceBase.Run(ServicesToRun); ))

Η μέθοδος Main ορίζεται από προεπιλογή για την εκτέλεση πολλαπλών υπηρεσιών ταυτόχρονα, οι οποίες ορίζονται στον πίνακα ServicesToRun. Ωστόσο, από προεπιλογή το έργο περιέχει μόνο μία υπηρεσία, την Υπηρεσία1. Η ίδια η εκκίνηση πραγματοποιείται χρησιμοποιώντας τη μέθοδο Run: ServiceBase.Run(ServicesToRun) .

Η υπηρεσία που ξεκινά αντιπροσωπεύεται από τον κόμβο Service1.cs. Ωστόσο, αυτό δεν είναι στην πραγματικότητα ένα απλό αρχείο κώδικα. Εάν ανοίξουμε αυτόν τον κόμβο, θα δούμε το αρχείο σχεδιαστή υπηρεσιών Service1.Designer.cs και την κλάση Service1.

Η κλάση Service1 αντιπροσωπεύει στην πραγματικότητα την υπηρεσία. Από προεπιλογή έχει τον ακόλουθο κώδικα:

Χρήση του συστήματος. χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.ComponentModel; χρησιμοποιώντας System.Data; χρησιμοποιώντας System.Diagnostics; χρησιμοποιώντας System.Linq; χρησιμοποιώντας System.ServiceProcess. χρησιμοποιώντας System.Text; χρησιμοποιώντας System.Threading.Tasks; namespace FileWatcherService ( δημόσια μερική κλάση Service1: ServiceBase ( public Service1() ( InitializeComponent(); ) προστατευμένη παράκαμψη void OnStart(args συμβολοσειράς) ( ) προστατευμένη παράκαμψη void OnStop() ( ) )

Η κλάση υπηρεσίας πρέπει να κληρονομήσει από τη βασική κλάση ServiceBase. Αυτή η κλάση ορίζει έναν αριθμό μεθόδων, οι πιο σημαντικές από τις οποίες είναι η μέθοδος OnStart(), η οποία ξεκινά τις ενέργειες που εκτελούνται από την υπηρεσία και η μέθοδος OnStop(), η οποία σταματά την υπηρεσία.

Αφού το SCM καλέσει τη μέθοδο Main και καταχωρήσει την υπηρεσία, καλείται απευθείας εκτελώντας τη μέθοδο OnStart.

Όταν στέλνουμε μια εντολή διακοπής μιας υπηρεσίας στην κονσόλα υπηρεσιών ή μέσω της γραμμής εντολών, η SCM καλεί τη μέθοδο OnStop για να τη διακόψει.

Εκτός από αυτές τις δύο μεθόδους στην κλάση υπηρεσιών, μπορείτε να παρακάμψετε πολλές ακόμη μεθόδους της βασικής κλάσης ServiceBase:

    OnPause: Καλείται όταν η υπηρεσία είναι σε παύση

    OnContinue: Καλείται όταν μια υπηρεσία συνεχίζεται μετά την αναστολή της

    OnShutdown: Καλείται όταν κλείνουν τα Windows

    OnPowerEvent: Καλείται όταν αλλάζει η λειτουργία τροφοδοσίας

    OnCustomCommand: Καλείται όταν μια υπηρεσία λαμβάνει μια προσαρμοσμένη εντολή από το Service Control Manager (SCM)

Στον κατασκευαστή της κλάσης Service1, καλείται η μέθοδος InitializeComponent(), η οποία ορίζεται στο αρχείο σχεδιαστή Service1.Designer.cs:

Namespace FileWatcherService ( μερική κλάση Service1 ( private System.ComponentModel.ICComponents = null; προστατευμένη παράκαμψη void Dispose(bool disposing) ( if (disposing && (components != null)) ( components.Dispose(); ) base.Dispose(disposing ) private void InitializeComponent() ( components = new System.ComponentModel.Container(); this.ServiceName = "Service1"; ) )

Το μόνο πράγμα που πρέπει να σημειωθεί σε αυτό είναι να ορίσετε το όνομα της υπηρεσίας (ιδιότητα Όνομα υπηρεσίας):

This.ServiceName = "Υπηρεσία1";

Αυτό είναι το όνομα που θα εμφανίζεται στην κονσόλα υπηρεσιών μετά την εγκατάσταση αυτής της υπηρεσίας. Μπορούμε να το αλλάξουμε, ή μπορούμε να το αφήσουμε ως έχει.

Τώρα ας αλλάξουμε τον κωδικό υπηρεσίας ως εξής:

Χρήση του συστήματος. χρησιμοποιώντας System.ServiceProcess. χρησιμοποιώντας System.IO; χρησιμοποιώντας System.Threading; Χώρος ονομάτων FileWatcherService ( δημόσια μερική κλάση Service1: ServiceBase ( Logger Logger; public Service1() ( InitializeComponent(); this.CanStop = true; this.CanPauseAndContinue = true; this.AutoLog = true; ) προστατευμένη παράκαμψη κενό OnStart (args συμβολοσειράς) καταγραφέας = new Logger(); class Logger ( FileSystemWatcher watcher; object obj = new object(); bool enabled = true; public Logger() ( watcher = new FileSystemWatcher("D:\\Temp"); watcher.Deleted += Watcher_Deleted; watcher.Created + = Watcher_Created.Changed += Watcher.Renamed += Watcher_Renamed ) public void Start() ( watcher.EnableRaisingEvents = true; while(enabled) ( Thread.Sleep(1000)); = false; enabled = false; string filePath = e.OldFullPath; RecordEntry(fileEvent, filePath); ) // αλλαγή αρχείων private void Watcher_Changed(object sender, FileSystemEventArgs e) ( string fileEvent = "changed"; string filePath = e.FullPath; RecordEntry(fileEvent, filePath); ) // δημιουργία αρχείων ιδιωτικού κενού Watcher_Created(objecty senderEvente e) ( string fileEvent = "δημιουργήθηκε"; string filePath = e.FullPath; RecordEntry(fileEvent, filePath); ) // διαγραφή αρχείων ιδιωτικού κενού Watcher_Deleted(object sender, FileSystemEventArgs e) (string fileEvent = "deleted"; string filePath = e.FullPath; .WriteLine(String.Format("(0) file (1) was (2)", DateTime.Now.ToString("ηη/ΜΜ/εεεε ωω:μμ:δδ"), filePath, fileEvent)); ) ) ) )

Η κλάση κλειδιού που ενσωματώνει όλη τη λειτουργικότητα είναι η κλάση Logger. Χρησιμοποιώντας το αντικείμενο FileSystemWatcher, θα παρακολουθεί τις αλλαγές στο φάκελο D://Θερμ. Η μέθοδος Start() καθορίζει ότι θα παρακολουθούμε για αλλαγές μέσω του αντικειμένου FileSystemWatcher. Και όλη η εργασία θα συνεχιστεί όσο η ενεργοποιημένη μεταβλητή boolean είναι αληθής. Και η μέθοδος Stop() θα επιτρέψει στην κλάση να τερματιστεί.

Τα συμβάντα FileSystemWatcher σάς επιτρέπουν να παρακολουθείτε όλες τις αλλαγές σε έναν φάκελο παρακολούθησης. Αυτό θα καταγράψει τις αλλαγές στο αρχείο templog.txt. Για να αποφευχθεί η κούρσα πόρων για το αρχείο templog.txt, στο οποίο καταγράφονται οι αλλαγές, η διαδικασία εγγραφής αποκλείεται από το στέλεχος lock(obj).

Ως αποτέλεσμα, μετά τη δημιουργία, την αλλαγή, τη μετονομασία και τη διαγραφή, το αρχείο καταγραφής θα περιέχει κάτι σαν:

30/07/2015 12:15:40 αρχείο D:\Temp\New text document.txt Δημιουργήθηκε 30/07/2015 12:15:46 αρχείο D:\Temp\New text document.txt μετονομάστηκε σε D:\ Temp\hello txt 07/30/2015 12:15:55 αρχείο D:\Temp\hello.txt τροποποιήθηκε 07/30/2015 12:15:55 αρχείο D:\Temp\hello.txt τροποποιήθηκε 07/30. /2015 12:16:01 αρχείο D: \Temp\hello.txt έχει διαγραφεί

Στην ίδια την κλάση υπηρεσιών Service1, ορίζεται ένας αριθμός επιλογών στον κατασκευαστή:

This.CanStop = true; // η υπηρεσία μπορεί να διακοπεί αυτό.CanPauseAndContinue = true; // η υπηρεσία μπορεί να τεθεί σε παύση και στη συνέχεια να συνεχιστεί αυτό.AutoLog = true; // η υπηρεσία μπορεί να γράψει στο αρχείο καταγραφής

Στη μέθοδο OnStart(), καλείται ένα νέο νήμα για να ξεκινήσει το αντικείμενο Logger:

Προστατευμένη παράκαμψη κενό OnStart(args συμβολοσειράς) ( logger = new Logger(); Thread loggerThread = new Thread(new ThreadStart(logger.Start)); loggerThread.Start();

Το νέο νήμα είναι απαραίτητο επειδή το τρέχον νήμα επεξεργάζεται μόνο εντολές SCM και πρέπει να επιστρέψει από τη μέθοδο OnStart το συντομότερο δυνατό.

Όταν λαμβάνεται μια εντολή από το SCM για διακοπή της υπηρεσίας, ενεργοποιείται η μέθοδος OnStop, η οποία καλεί τη μέθοδο logger.Stop(). Η πρόσθετη καθυστέρηση θα επιτρέψει στο νήμα του καταγραφικού να σταματήσει:

Προστατευμένη παράκαμψη void OnStop() ( logger.Stop(); Thread.Sleep(1000); )

Ωστόσο, η ίδια η κατηγορία υπηρεσιών δεν είναι αρκετή. Πρέπει επίσης να δημιουργήσουμε ένα πρόγραμμα εγκατάστασης υπηρεσιών.

Είναι δυνατή η εκτέλεση μιας εφαρμογής πελάτη ως υπηρεσία; Δεν μπορεί να εκτελεστεί κάθε εφαρμογή κονσόλας ως υπηρεσία και τα προγράμματα με γραφική διεπαφή, κατ 'αρχήν, δεν μπορούν να λειτουργήσουν με αυτόν τον τρόπο. Ωστόσο, εξακολουθεί να είναι δυνατή η εκτέλεση της εφαρμογής ως υπηρεσία και ένα πρόγραμμα με πρωτότυπο όνομα θα μας βοηθήσει σε αυτό Υπεύθυνος Υπηρεσιών που δεν ρουφάει.

Το NSSM είναι δωρεάν λογισμικό ανοιχτού κώδικα και υποστηρίζει όλα τα λειτουργικά συστήματα Microsoft, ξεκινώντας με Windows 2000 και τελειώνοντας με . Το NSSM δεν απαιτεί εγκατάσταση, απλώς κατεβάστε το και αποσυσκευάστε το. Η διανομή περιλαμβάνει εκδόσεις για λειτουργικά συστήματα 32 και 64 bit. Μπορείτε να πάρετε το πρόγραμμα από την ιστοσελίδα nssm.cc, αυτή τη στιγμή η τελευταία σταθερή έκδοση είναι η 2.21.1, την οποία θα χρησιμοποιήσω.

Για να δείξουμε τις δυνατότητες του NSSM, ας προσπαθήσουμε να εκτελέσουμε το Σημειωματάριο ως υπηρεσία στο .

Δημιουργία Υπηρεσίας

Για να δημιουργήσετε μια υπηρεσία με το όνομα μπλοκ ΣΗΜΕΙΩΣΕΩΝεκκινήστε την κονσόλα εντολών, μεταβείτε στο φάκελο με το μη συσκευασμένο NSSM (για Windows 64-bit) και πληκτρολογήστε την εντολή nssm install notepad, η οποία ανοίγει το παράθυρο του προγράμματος εγκατάστασης γραφικών NSSM. Για να δημιουργήσετε μια υπηρεσία, απλώς καθορίστε τη διαδρομή προς το εκτελέσιμο αρχείο στο πεδίο Διαδρομή και κάντε κλικ στο κουμπί "Εγκατάσταση υπηρεσίας". Επιπλέον, στο πεδίο Επιλογές μπορείτε να καθορίσετε τα κλειδιά που απαιτούνται για την έναρξη της υπηρεσίας.

Μπορείτε επίσης να καθορίσετε ορισμένες πρόσθετες παραμέτρους κατά τη δημιουργία μιας νέας υπηρεσίας.

Η καρτέλα "Τερματισμός" παραθέτει τις μεθόδους τερματισμού λειτουργίας και τα χρονικά όρια που χρησιμοποιούνται όταν η εφαρμογή τερματίζεται κανονικά ή διακόπτεται η λειτουργία της. Όταν το NSSM λαμβάνει μια εντολή διακοπής (για παράδειγμα, όταν μια εφαρμογή τερματίζεται), επιχειρεί να σταματήσει την ελεγχόμενη εφαρμογή με κανονικό τρόπο. Εάν η εφαρμογή δεν ανταποκριθεί, τότε το NSSM μπορεί να τερματίσει αναγκαστικά όλες τις διεργασίες και τις υποδιεργασίες αυτής της εφαρμογής.

Υπάρχουν τέσσερα βήματα για τον τερματισμό της εφαρμογής και από προεπιλογή θα χρησιμοποιηθούν με αυτή τη σειρά:

Στο πρώτο στάδιο, το NSSM προσπαθεί να δημιουργήσει και να στείλει ένα συμβάν Ctrl+C.Αυτή η μέθοδος λειτουργεί καλά για εφαρμογές κονσόλας ή σενάρια, αλλά δεν ισχύει για εφαρμογές γραφικών.
Στη συνέχεια, το NSSM εντοπίζει όλα τα παράθυρα που δημιουργούνται από την εφαρμογή και τους στέλνει ένα μήνυμα WM_CLOSE, προκαλώντας την έξοδο της εφαρμογής.
Το τρίτο βήμα είναι ότι το NSSM υπολογίζει όλα τα νήματα που δημιουργούνται από την εφαρμογή και τους στέλνει ένα μήνυμα WM_QUIT, το οποίο θα ληφθεί εάν η εφαρμογή έχει ουρά μηνυμάτων νημάτων.
Ως τελευταία λύση, το NSSM μπορεί να καλέσει τη μέθοδο TerminateProcess(), αναγκάζοντας την εφαρμογή να τερματιστεί.

Είναι δυνατό να απενεργοποιήσετε ορισμένες ή ακόμα και όλες τις μεθόδους, αλλά διαφορετικές μέθοδοι λειτουργούν για διαφορετικές εφαρμογές και συνιστάται να αφήσετε τα πάντα ως έχουν για να διασφαλίσετε ότι η εφαρμογή τερματίζεται σωστά.

Από προεπιλογή, όταν μια υπηρεσία διακόπτεται, το NSSM προσπαθεί να την επανεκκινήσει. Στην καρτέλα "Ενέργειες εξόδου", μπορείτε να αλλάξετε την αυτόματη ενέργεια όταν η εφαρμογή τερματίζεται ασυνήθιστα, καθώς και να ορίσετε μια καθυστέρηση πριν από την αυτόματη επανεκκίνηση της εφαρμογής.

Στην καρτέλα "Είσοδος/Έξοδος (I/O)", μπορείτε να ορίσετε την ανακατεύθυνση της εισόδου/εξόδου της εφαρμογής σε ένα καθορισμένο αρχείο.

Στην καρτέλα "Περιβάλλον", μπορείτε να ορίσετε νέες μεταβλητές περιβάλλοντος για την υπηρεσία ή να παρακάμψετε τις υπάρχουσες.

Μπορείτε επίσης να μην χρησιμοποιήσετε το κέλυφος γραφικών και να δημιουργήσετε αμέσως μια υπηρεσία στην κονσόλα με την ακόλουθη εντολή:

Σημειωματάριο εγκατάστασης nssm ″C:\Windows\system32\notepad.exe″

Διαχείρισης υπηρεσιών

Αφού δημιουργήσετε την υπηρεσία χρησιμοποιώντας το NSSM, μεταβείτε στο συμπληρωματικό πρόγραμμα Υπηρεσίες και βρείτε την υπηρεσία σημειωματάριο. Όπως μπορείτε να δείτε, στην εμφάνιση δεν διαφέρει από άλλες υπηρεσίες, μπορούμε επίσης να το ξεκινήσουμε, να το σταματήσουμε ή να αλλάξουμε τη λειτουργία εκκίνησης. Ωστόσο, σημειώστε ότι το nssm.exe παρατίθεται ως το εκτελέσιμο αρχείο.

Και αν πάμε στη Διαχείριση Εργασιών, θα δούμε την ακόλουθη εικόνα: Το NSSM εκτελείται ως κύρια (γονική) διαδικασία, η υπηρεσία σημειωματάριου εκτελείται ως θυγατρική διαδικασία και η εφαρμογή Σημειωματάριο εκτελείται ήδη σε αυτήν τη θυγατρική διαδικασία.

Αφαίρεση υπηρεσίας

Για να καταργήσετε μια υπηρεσία, πληκτρολογήστε την εντολή nssm remove notepad και επιβεβαιώστε την αφαίρεσή της. Και εισάγοντας την εντολή nssm remove notepad επιβεβαιώστε, μπορείτε να κάνετε χωρίς επιβεβαίωση.

Ξεκινήστε μια υπηρεσία διαδραστικά

Η κύρια διαφορά μεταξύ μιας εφαρμογής χρήστη και μιας υπηρεσίας είναι ότι, μετά την εκκίνηση, η εφαρμογή ενδέχεται να απαιτήσει πρόσθετες ενέργειες από τον χρήστη για να συνεχίσει να εκτελείται - για παράδειγμα, πατώντας ένα κουμπί ή εισάγοντας μια εντολή. Για να το κάνετε αυτό, πρέπει να αποκτήσετε πρόσβαση σε αυτό, κάτι που, όπως αποδεικνύεται, δεν είναι τόσο εύκολο να γίνει.

Για να ξεκινήσετε μια υπηρεσία σε διαδραστική λειτουργία, πρέπει να ανοίξετε τις ιδιότητές της στο συμπληρωματικό πρόγραμμα Υπηρεσίες και στην καρτέλα «Είσοδος», επιλέξτε το πλαίσιο ελέγχου «Να επιτρέπεται η αλληλεπίδραση με την επιφάνεια εργασίας».

Και τότε αρχίζουν τα θαύματα Για μια υπηρεσία που εκτελείται σε διαδραστική λειτουργία, το σύστημα ανοίγει μια ξεχωριστή απομονωμένη συνεδρία (session 0). Αυτή η συνεδρία είναι προσβάσιμη μόνο με τη χρήση της Υπηρεσίας Ανίχνευσης Διαδραστικών Υπηρεσιών (ui0detect), η οποία παρακολουθεί την εκκίνηση διαδραστικών υπηρεσιών στον υπολογιστή και εκδίδει μια ειδοποίηση. Στα Windows 7\Server 2008 αυτή η υπηρεσία είναι ενεργή από προεπιλογή, αλλά στα Windows 8\Server 2012 είναι απενεργοποιημένη και δεν εμφανίζεται στο συμπληρωματικό γραφικό Υπηρεσίες (τουλάχιστον δεν τη βρήκα εκεί). Επιπλέον, εάν βρείτε αυτή τη μυστηριώδη υπηρεσία και προσπαθήσετε να την ξεκινήσετε, θα λάβετε ένα μήνυμα σφάλματος.

Αλλά το γεγονός είναι ότι για να το εκτελέσετε, πρέπει να επιτρέψετε την εκτέλεση διαδραστικών υπηρεσιών στον υπολογιστή σας. Επομένως, ανοίξτε τον επεξεργαστή μητρώου, βρείτε στην ενότητα HKLM\System\CurrentControlSet\Control\Windows μια παράμετρο τύπου DWORD με το όνομα NoInteractiveServicesκαι ορίστε την τιμή του σε 0 .

Στη συνέχεια, ανοίξτε την κονσόλα PowerShell και ξεκινήστε την υπηρεσία εντοπισμού με την εντολή:

Start-Service -Όνομα ui0detect

Αφού βεβαιωθούμε ότι εκτελείται η υπηρεσία ανίχνευσης, κάνουμε επανεκκίνηση της υπηρεσίας σημειωματάριο και έχουμε αυτό το παράθυρο. Επιλέξτε "Προβολή μηνύματος"

και βρισκόμαστε στη μηδενική συνεδρία στην οποία εκτελείται η εφαρμογή μας. Στη συνέχεια κάνουμε τις απαραίτητες ενέργειες με αυτό και επιστρέφουμε πίσω.

Αυτή είναι μια ενδιαφέρουσα λύση για την εκτέλεση εφαρμογών ως υπηρεσίες Windows. Όχι το πιο όμορφο, αλλά αρκετά συνεπές με το όνομά του

Πώς να εκτελέσετε μια εφαρμογή ως υπηρεσία Windows



Είναι δυνατή η εκτέλεση μιας εφαρμογής πελάτη ως υπηρεσία; Ένα από τα άρθρα περιέχει τρόπους δημιουργίας μιας υπηρεσίας Windows χρησιμοποιώντας τυπικά εργαλεία λειτουργικού συστήματος. Ωστόσο, δεν μπορεί να εκτελεστεί κάθε εφαρμογή κονσόλας ως υπηρεσία και τα προγράμματα με γραφική διεπαφή, κατ 'αρχήν, δεν μπορούν να λειτουργήσουν με αυτόν τον τρόπο. Ωστόσο, εξακολουθεί να είναι δυνατή η εκτέλεση της εφαρμογής ως υπηρεσία και ένα πρόγραμμα με πρωτότυπο όνομα θα μας βοηθήσει σε αυτό Υπεύθυνος Υπηρεσιών που δεν ρουφάει.

Το NSSM είναι δωρεάν λογισμικό ανοιχτού κώδικα και υποστηρίζει όλα τα λειτουργικά συστήματα της Microsoft από τα Windows 2000 έως τα Windows 8. Το NSSM δεν απαιτεί εγκατάσταση, απλώς κατεβάστε το και αποσυμπιέστε το. Η διανομή περιλαμβάνει εκδόσεις για λειτουργικά συστήματα 32 και 64 bit. Μπορείτε να πάρετε το πρόγραμμα από την ιστοσελίδα nssm.cc, αυτή τη στιγμή η τελευταία σταθερή έκδοση είναι η 2.21.1, την οποία θα χρησιμοποιήσω.
Για να δείξουμε τις δυνατότητες του NSSM, ας δοκιμάσουμε να εκτελέσουμε το Σημειωματάριο των Windows ως υπηρεσία στα Windows 8.1.

Δημιουργία Υπηρεσίας

Για να δημιουργήσετε μια υπηρεσία με το όνομα μπλοκ ΣΗΜΕΙΩΣΕΩΝεκκινήστε την κονσόλα εντολών, μεταβείτε στο φάκελο με το μη συσκευασμένο NSSM (για Windows 64-bit) και πληκτρολογήστε την εντολή

Κώδικας:

Σημειωματάριο εγκατάστασης Nssm

που ανοίγει το παράθυρο του προγράμματος εγκατάστασης γραφικών NSSM. Για να δημιουργήσετε μια υπηρεσία, απλώς καθορίστε τη διαδρομή προς το εκτελέσιμο αρχείο στο πεδίο Διαδρομή και κάντε κλικ στο κουμπί "Εγκατάσταση υπηρεσίας". Επιπλέον, στο πεδίο Επιλογές μπορείτε να καθορίσετε τα κλειδιά που απαιτούνται για την έναρξη της υπηρεσίας.

Μπορείτε επίσης να καθορίσετε ορισμένες πρόσθετες παραμέτρους κατά τη δημιουργία μιας νέας υπηρεσίας.

Η καρτέλα Shutdown παραθέτει τις μεθόδους τερματισμού λειτουργίας και τα χρονικά όρια που χρησιμοποιούνται όταν η εφαρμογή τερματίζεται κανονικά ή διακόπτεται η λειτουργία της. Όταν το NSSM λαμβάνει μια εντολή διακοπής (για παράδειγμα, όταν μια εφαρμογή τερματίζεται), επιχειρεί να σταματήσει την ελεγχόμενη εφαρμογή με κανονικό τρόπο. Εάν η εφαρμογή δεν ανταποκριθεί, τότε το NSSM μπορεί να τερματίσει αναγκαστικά όλες τις διεργασίες και τις υποδιεργασίες αυτής της εφαρμογής.

Υπάρχουν τέσσερα βήματα για τον τερματισμό της εφαρμογής και από προεπιλογή θα χρησιμοποιηθούν με αυτή τη σειρά:

Στο πρώτο βήμα, το NSSM προσπαθεί να δημιουργήσει και να στείλει ένα συμβάν Ctrl+C. Αυτή η μέθοδος λειτουργεί καλά για εφαρμογές κονσόλας ή σενάρια, αλλά δεν ισχύει για εφαρμογές γραφικών.
Στη συνέχεια, το NSSM εντοπίζει όλα τα παράθυρα που δημιουργούνται από την εφαρμογή και τους στέλνει ένα μήνυμα WM_CLOSE, προκαλώντας την έξοδο της εφαρμογής.
Το τρίτο βήμα είναι ότι το NSSM υπολογίζει όλα τα νήματα που δημιουργούνται από την εφαρμογή και τους στέλνει ένα μήνυμα WM_QUIT, το οποίο θα ληφθεί εάν η εφαρμογή έχει ουρά μηνυμάτων νημάτων.
Ως τελευταία λύση, το NSSM μπορεί να καλέσει τη μέθοδο TerminateProcess(), αναγκάζοντας την εφαρμογή να τερματιστεί.

Είναι δυνατό να απενεργοποιήσετε ορισμένες ή ακόμα και όλες τις μεθόδους, αλλά διαφορετικές μέθοδοι λειτουργούν για διαφορετικές εφαρμογές και συνιστάται να αφήσετε τα πάντα ως έχουν για να διασφαλίσετε ότι η εφαρμογή τερματίζεται σωστά.

Από προεπιλογή, όταν μια υπηρεσία διακόπτεται, το NSSM προσπαθεί να την επανεκκινήσει. Στην καρτέλα "Ενέργειες εξόδου", μπορείτε να αλλάξετε την αυτόματη ενέργεια όταν η εφαρμογή τερματίζεται ασυνήθιστα, καθώς και να ορίσετε μια καθυστέρηση πριν από την αυτόματη επανεκκίνηση της εφαρμογής.

Στην καρτέλα "Είσοδος/Έξοδος (I/O)", μπορείτε να ορίσετε την ανακατεύθυνση της εισόδου/εξόδου της εφαρμογής σε ένα καθορισμένο αρχείο.

Στην καρτέλα "Περιβάλλον", μπορείτε να ορίσετε νέες μεταβλητές περιβάλλοντος για την υπηρεσία ή να παρακάμψετε τις υπάρχουσες.

Μπορείτε επίσης να μην χρησιμοποιήσετε το κέλυφος γραφικών και να δημιουργήσετε αμέσως μια υπηρεσία στην κονσόλα με την ακόλουθη εντολή:

Κώδικας:

Σημειωματάριο εγκατάστασης Nssm "C:\Windows\system32\notepad.exe"

Διαχείρισης υπηρεσιών

Αφού δημιουργήσετε την υπηρεσία χρησιμοποιώντας το NSSM, μεταβείτε στο συμπληρωματικό πρόγραμμα Υπηρεσίες και βρείτε την υπηρεσία σημειωματάριο. Όπως μπορείτε να δείτε, στην εμφάνιση δεν διαφέρει από άλλες υπηρεσίες, μπορούμε επίσης να το ξεκινήσουμε, να το σταματήσουμε ή να αλλάξουμε τη λειτουργία εκκίνησης. Ωστόσο, σημειώστε ότι το nssm.exe παρατίθεται ως το εκτελέσιμο αρχείο.

Και αν πάμε στη Διαχείριση Εργασιών, θα δούμε την ακόλουθη εικόνα: Το NSSM εκτελείται ως κύρια (γονική) διαδικασία, η υπηρεσία σημειωματάριου εκτελείται ως θυγατρική διαδικασία και η εφαρμογή Σημειωματάριο εκτελείται ήδη σε αυτήν τη θυγατρική διαδικασία.

Τρόποι λειτουργίας

Στις περισσότερες περιπτώσεις, οι υπηρεσίες απαγορεύεται να αλληλεπιδρούν με την κονσόλα ή την επιφάνεια εργασίας των χρηστών (τόσο τοπικές όσο και απομακρυσμένες), αλλά για ορισμένες υπηρεσίες είναι δυνατή μια εξαίρεση - αλληλεπίδραση με την κονσόλα (αριθμός συνεδρίας 0 στην οποία ο χρήστης είναι εγγεγραμμένος τοπικά ή όταν η η υπηρεσία ξεκινά mstscμε το διακόπτη /console).

Υπάρχουν διάφοροι τρόποι για τις υπηρεσίες:

  • Απαγορεύεται η εκτόξευση·
  • χειροκίνητη εκκίνηση (κατόπιν αιτήματος).
  • αυτόματη εκκίνηση κατά την εκκίνηση του υπολογιστή.
  • αυτόματη (καθυστερημένη) εκκίνηση (παρουσιάστηκε στα Windows Vista και στον Windows Server 2008).
  • υποχρεωτική εξυπηρέτηση/πρόγραμμα οδήγησης (αυτόματη εκκίνηση και αδυναμία (για τον χρήστη) διακοπής της υπηρεσίας).

Λειτουργία φόντου

Έναρξη, διακοπή και αλλαγή των υπηρεσιών των Windows

Οι υπηρεσίες και τα χαρακτηριστικά τους μπορούν να αλλάξουν στο MMC:

Διαφορετικές εκδόσεις λειτουργικών συστημάτων μπορεί να έχουν ορισμένες υπηρεσίες και όχι άλλες. Ορισμένες εφαρμογές και προγράμματα που εγκαθίστανται χωριστά μπορούν επίσης να δημιουργήσουν τις δικές τους υπηρεσίες.

Λίστα υπηρεσιών λειτουργικού συστήματος Microsoft Windows

Εμφανιζόμενο όνομα Ονομα Υπηρεσίας Λειτουργίες Περιγραφή
πελάτης DHCP Dhcp Καταχωρεί και ενημερώνει διευθύνσεις IP και εγγραφές DNS για αυτόν τον υπολογιστή. Εάν διακοπεί αυτή η υπηρεσία, αυτός ο υπολογιστής δεν θα μπορεί να αποκτήσει δυναμικές διευθύνσεις IP και να εκτελεί ενημερώσεις DNS.
πελάτης DNS Dnscache Η υπηρεσία DNS Client (dnscache) αποθηκεύει προσωρινά τα ονόματα συστήματος ονομάτων τομέα (DNS) και καταχωρεί το πλήρως αναγνωρισμένο όνομα ενός δεδομένου υπολογιστή. Εάν η υπηρεσία διακοπεί, η ανάλυση ονόματος DNS θα συνεχιστεί. Ωστόσο, τα αποτελέσματα των ουρών ονομάτων DNS δεν θα αποθηκευτούν προσωρινά και το όνομα του υπολογιστή δεν θα καταχωρηθεί.
KtmRm για συντονιστή κατανεμημένων συναλλαγών KtmRm Συντονίζει τις συναλλαγές μεταξύ του MSDTC και του Kernel Transaction Manager (KTM).
ReadyBoost EMDMgmt ReadyBoost Υποστήριξη για τη βελτίωση της απόδοσης του συστήματος χρησιμοποιώντας την τεχνολογία ReadyBoost.
Superfetch SysMain Superfetch Διατηρεί και βελτιώνει την απόδοση του συστήματος.
Windows Audio Audiosrv Διαχείριση εργαλείων ήχου για προγράμματα Windows. Εάν διακοπεί αυτή η υπηρεσία, οι συσκευές ήχου και τα εφέ δεν θα λειτουργούν σωστά.
Windows CardSpace IDSVC Παρέχει μια ασφαλή δυνατότητα δημιουργίας, διαχείρισης και έκθεσης ψηφιακών ταυτοτήτων.
Αυτόματη ενημέρωση WUAUSERV Περιλαμβάνει λήψη και εγκατάσταση ενημερώσεων των Windows. Εάν η υπηρεσία είναι απενεργοποιημένη, αυτός ο υπολογιστής δεν θα μπορεί να χρησιμοποιήσει τις Αυτόματες ενημερώσεις ή την τοποθεσία του Windows Update στο Web.

Λίστα υπηρεσιών που δημιουργούνται από εφαρμογές και προγράμματα της Microsoft

Λίστα υπηρεσιών που δημιουργούνται από εφαρμογές και προγράμματα άλλων κατασκευαστών

δείτε επίσης

Λίστα υπηρεσιών Windows

Συνδέσεις

  • pcs.suite101.com/article.cfm/index_of_services: Ευρετήριο υπηρεσιών Windows XP - Ευρετήριο των υπηρεσιών που εκτελούνται σε λειτουργικό σύστημα Windows XP
  • Πώς να αφαιρέσετε μια υπηρεσία στα Windows Vista ή Windows XP
  • Υπηρεσίες Windows XP (Ρωσικά)

Ίδρυμα Wikimedia. 2010.

Δείτε τι είναι το "Windows Services" σε άλλα λεξικά:

    Οι Υπηρεσίες Windows SharePoint Services (WSS) είναι ένα δωρεάν πρόσθετο για τον Microsoft Windows Server 2003 και 2008, παρέχοντας μια πλήρεις δυνατότητες διαδικτυακής πλατφόρμας με υποστήριξη για τις ακόλουθες δυνατότητες: Σύστημα διαχείρισης περιεχομένου Εργαλεία συνεργασίας... ... Wikipedia

    Προγραμματιστής οικογένεια λειτουργικών συστημάτων Microsoft Windows ... Wikipedia

    Στοιχείο Microsoft Windows ... Wikipedia