Cài đặt service chạy cùng windows

Đôi khi bạn có thể cần mở và quản lý các Dịch vụ Windows của mình. Bạn có thể muốn dừng một số dịch vụ, khởi động nó, vô hiệu hóa dịch vụ, trì hoãn dịch vụ khởi động hoặc tiếp tục hoặc tạm dừng Dịch vụ Windows. Vào thời điểm đó, Người quản lý dịch vụ, là một công cụ tích hợp trong hệ điều hành Windows, sẽ giúp bạn. Bài viết này sẽ chỉ cho bạn cách mở Dịch vụ Windows của bạn, bằng cách sử dụng Trình quản lý Dịch vụ cũng như Dấu nhắc Lệnh.

Windows Services là các ứng dụng thường khởi động khi máy tính khởi động và chạy lặng lẽ dưới nền cho đến khi nó bị tắt. Nói đúng ra, một dịch vụ là bất kỳ ứng dụng Windows nào được triển khai với API dịch vụ và xử lý các tác vụ cấp thấp đòi hỏi ít hoặc không có tương tác người dùng.

Cách mở Trình quản lý Dịch vụ Windows

Để mở Windows Services, hãy chạy services.msc để mở Trình quản lý dịch vụ. Tại đây bạn có thể bắt đầu, dừng, vô hiệu hóa, trì hoãn các dịch vụ Windows.

Chúng ta hãy xem làm thế nào để làm điều này chi tiết hơn một chút.

Nhấp chuột phải vào nút Start của bạn để mở Menu WinX. Chọn Chạy. Thao tác này sẽ mở hộp Run. Bây giờ hãy nhập services.msc và nhấn Enter để mở Trình quản lý Dịch vụ.

Cài đặt service chạy cùng windows

Ở dưới cột Tên, bạn sẽ thấy danh sách các Dịch vụ đang chạy trên hệ thống của bạn, cùng với mô tả của chúng. Bạn cũng sẽ có thể xem trạng thái của họ -khi họ đang chạy hoặc dừng lại, cùng với các loại Khởi động.

Các loại dịch vụ Windows khởi động

Windows 10 cung cấp bốn loại khởi động:

  1. Tự động
  2. Tự động (Bắt đầu bị trì hoãn)
  3. Hướng dẫn
  4. Tàn tật.

Bắt đầu, dừng, tắt Dịch vụ Windows

Để bắt đầu, dừng, tạm dừng, tiếp tục hoặc khởi động lại bất kỳ Dịch vụ Windows nào, hãy chọn Dịch vụ và nhấp chuột phải vào Dịch vụ. Bạn sẽ được cung cấp các tùy chọn này.

Nếu bạn muốn quản lý nhiều tùy chọn hơn, hãy nhấp đúp vào Dịch vụ để mở hộp Thuộc tính của nó.

Cài đặt service chạy cùng windows

Dưới đây theo Loại khởi động trình đơn thả xuống, bạn sẽ có thể chọn loại khởi động cho Dịch vụ.

Dưới Trạng thái dịch vụ, bạn sẽ thấy các nút để Bắt đầu, Dừng, Tạm dừng, Tiếp tục Dịch vụ.

Trong hộp Properties, bạn cũng sẽ thấy các tab khác như Log On, Recovery & Dependencies, cung cấp các tùy chọn và thông tin bổ sung.

Khi bạn đã thực hiện các thay đổi, bạn sẽ phải nhấp vào Áp dụng và khởi động lại máy tính của bạn, để các thay đổi có hiệu lực.

Quản lý dịch vụ bằng Command Line

Bạn cũng có thể sử dụng Command Prompt để bắt đầu, dừng, tạm dừng, tiếp tục dịch vụ. Để sử dụng nó, từ Menu WinX, mở Command Prompt (Quản trị) và thực hiện một trong các lệnh sau:

Để bắt đầu một dịch vụ:

net startservice

Để ngừng dịch vụ:

net stopservice

Để tạm dừng một dịch vụ:

net pauseservice

Để tiếp tục dịch vụ:

net continueservice

Để tắt dịch vụ:

sc config 'Name Of Service' start= disabled

Chúng tôi khuyên bạn không nên thay đổi cài đặt mặc định trừ khi bạn biết mình đang làm gì, vì điều này có thể khiến một số phần trong hệ điều hành của bạn ngừng hoạt động. Khi bạn dừng, bắt đầu hoặc khởi động lại một dịch vụ, mọi dịch vụ phụ thuộc cũng bị ảnh hưởng, vì vậy bạn cần cẩn thận ở đây.

Xem bài đăng này nếu Dịch vụ Windows của bạn không khởi động.

  • Cách mở Trình quản lý Dịch vụ Windows
  • Tweet

    Share

    Link

    Plus

    Send

    Send

    Pin

          Windows Service Applications  hay là Microsoft Windows services  ( còn gọi là các NT services)  cho phép chúng ta viết các ứng dụng chạy ngầm bên trong các phiên làm việc của Windows mà không cần có giao diện người sử dụng để tương tác với chúng.

          Mục đích của chúng để thực hiện các công việc theo một quy trình tuần hoàn nào đó với các tham số, cấu hình được định nghĩa trước mà người sử dụng không cần phải can thiệp thông qua giao diện, chúng được thiết lập các tham số để chạy.  Các services này có thể được chạy một cách tự động chạy khi máy tính khởi động, có thể tạm dừng và khởi động lại services.

         Dưới đây xin trình bày các tạo ra một Window Services đơn giản nhất sử dụng Visual Studio 2012.

    Cài đặt service chạy cùng windows

           Đặt tên cho Project Services rồi  nhấn Ok, Project Windows Service sẽ có cấu trúc như sau.

    Cài đặt service chạy cùng windows

          File chính mặc định của Project là Services1.cs,  trong ví dụ được đổi thành tên DemoServices.cs theo tên Project.

          Các ứng dụng Windows Services do người dùng viết đều được kế thừa từ lớp ServiceBase  trong namspace có tên  System.ServiceProcess.

    1.  Ghi lại hoạt động của Services bằng EventLog

          Do các Windows Services không có giao diện người sử dụng, nên để theo dõi hoạt động của  Services người ta thường sử dụng Log của window để chứa các thông tin liên quan tới các thao tác xử lý bên trong Services. Để cập nhật vào dữ liệu Log của Window. Trong C# người ta sẽ sử dụng lớp EventLog trong namespace System.Diagnostics

    System.Diagnostics.EventLog

          Việc khởi tạo đối tượng ghi Log của Window thường diễn ra trong Constructor của lớp Services, trong ví dụ này là DemoServices

    privateSystem.Diagnostics.EventLog eventLogServices;

    publicDemoServices()

    {

         InitializeComponent();

         eventLogServices=newSystem.Diagnostics.EventLog();

         if (!System.Diagnostics.EventLog.SourceExists("DemoSource"))

         {

              System.Diagnostics.EventLog.CreateEventSource( "DemoSource","DemoLog");

         }

         eventLogServices.Source="DemoSource";

         eventLogServices.Log= "DemoLog";

    }

        Thuộc tính Source dùng để định danh cho Log giúp, thường có tên trùng với ứng dụng để xác định Log này được dùng cho ứng dụng nào, trong ví dụ này là DemoSource.  Đoạn code trên giúp kiểm tra xem đã tồn tại Log nào sử dụng tên như vậy trong hệ thống chưa, nếu chưa tồn tại thì thực hiện log.

    2.  Xử lý nghiệp vụ mang tính tuần hoàn bằng cách sử dụng 1 Timer.

          Mục đích sử dụng của Windows Services thường dùng để giải quyết các công việc theo quy trình mang tính chất lặp đi lặp lại và để thực hiện điều này trong Windows Services chúng ta thường sử dụng 1 Timer,  Trong C# cung cấp lớp Timer trong namspace System.Timers .

          Việc khởi tạo đối tượng Timer của Window thường diễn ra trong Constructor của lớp Services, trong ví dụ này là DemoServices

    // Xử lý nghiệp vụ mang tính tuần hoàn bằng cách sử dụng 1 Timer.

    scheduleServices=newSystem.Timers.Timer();

    scheduleServices.Interval=60000; // 60 seconds - Thời gian quy trình sẽ lặp lại

    scheduleServices.Elapsed+=newSystem.Timers.ElapsedEventHandler(this.OnTimer);// Thực hiện lặp

    scheduleServices.Start();

    3. Các phương thức khác.

          Khi tạo Windows Services thường sẽ có thêm 2 phương thức cơ bản dùng để khởi động hoặc tắt Services bao gôm OnStart và OnStop như sau

    protectedoverridevoidOnStart(string[]args)

    {

        scheduleServices.Stop();

        eventLogServices.WriteEntry("In OnStart");

        scheduleServices.Start();

    }

           Nếu có sử dụng Timer bên trong Services thì Onstart thường sẽ là nơi dừng quy trình cũ và thự hiện quy trính mới.

    protectedoverridevoidOnStop()

    {

        cheduleServices.Stop();

        eventLogServices.WriteEntry("Stopped");

    }

    Nếu có sử dụng Timer bên trong Services thì OnStop thường sẽ là nơi dừng quy trình cũ

    Ngoải ra còn có thể bổ sung cho Services một sốcác phương thức hỗ trợ như tạm dừng ( OnPause), tiêp tục ( OnContinue),..

    Dưới đây là toàn bộ code đẩy đủ của ví dụ.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    publicpartial classDemoServices:ServiceBase

        {

            privateSystem.Diagnostics.EventLog eventLogServices;

            private System.Timers.Timer scheduleServices;

            publicDemoServices()

            {

                InitializeComponent();

                // Ghi lại hoạt động của Services bằng EventLog

                eventLogServices=new System.Diagnostics.EventLog();

                if(!System.Diagnostics.EventLog.SourceExists("DemoSource"))

                {

                    System.Diagnostics.EventLog.CreateEventSource(

                        "DemoSource","DemoLog");

                }

                eventLogServices.Source="DemoSource";

                eventLogServices.Log ="DemoLog";

                // Xử lý nghiệp vụ mang tính tuần hoàn bằng cách sử dụng 1 Timer.

                scheduleServices=new System.Timers.Timer();

                scheduleServices.Interval=60000;

                scheduleServices.Elapsed +=newSystem.Timers.ElapsedEventHandler(this.OnTimer);

                scheduleServices.Start();

            }

            publicvoidOnTimer(objectsender,System.Timers.ElapsedEventArgs args)

            {

                eventLogServices.WriteEntry("Ghi log nghiệp vụ");

            }

            protectedoverridevoidOnStart(string[]args)

            {

                scheduleServices.Stop();

                eventLogServices.WriteEntry("Started");

                scheduleServices.Start();

            }

            protectedoverridevoidOnStop()

            {

                scheduleServices.Stop();

                eventLogServices.WriteEntry("Stopped");

            }

            #region Các phương thức tùy chọn

            protected overridevoidOnPause()

            {

                scheduleServices.Stop();

                eventLogServices.WriteEntry("Paused");

            }

            protectedoverridevoidOnContinue()

            {

                scheduleServices.Start(); ;

                eventLogServices.WriteEntry("Continuing");

            }

            protectedoverridevoid OnShutdown()

            {

                scheduleServices.Stop();

                eventLogServices.WriteEntry("ShutDowned");

            }

            #endregion

        }

    4.  Tạo thông tin cài đặt cho Services bằng cách sử dụng lớp Installer

    Để cài đặt services cần tạo bộ cài đặt cho Serivces thông qua lớp Installer của namspace System.Configuration.Install

    Kích chuột phải vào file DemoServices chọn View Designer trên Visual Studio. Tại View Designer tiếp chọn Add Installer. 

    Cài đặt service chạy cùng windows

    5. Thực hiện Cài đặt Services thực tế trên hệ thống

         Có nhiểu cách để hỗ trợ bạn cài đặt window services:

     Cách 1 : Sử dụng lệnh command line sc để cài đặt Windows Services

     Cách 2 : Sử dụng tiên ích có sẵn của Visual Studio – Công cụ Installutil.exe ( thường sử dụng khi tự test)

    • Để cài đặt Windows Services, bạn phải có quyền Admin trên máy tính cần cài đặt. Các bước cài nh sau:
    1. Trong  Windows 7 và Windows Server, mở Developer Command Prompt  của Visual Studio Tools trong Start. Trong Windows 8 hoặc  Windows 8.1, chọn Visual Studio Tools trong màn hình Start, và chạy Developer Command Prompt với quyền Admin. (thực hiện right-click trên Developer Command Prompt, và chọn Run as Administrator.)

    2. Mở Command Prompt window, di chuyển tới file Exe project Windows Serivces  của bạn. Ví dụ của tôi là:  Visual Studio 2013\Projects\WindowSerivcesDemo\bin\Debug.

    3. Chạy dòng lệnh sau:

      installutil.exe WindowSerivcesDemo.exe

    Cách 3 : Tạo Project cài đặt, được sử dụng khi Services được tạo trên máy khách hàng

          Xem chi tiết : tại đây

    Cách 4 : Sử dụng bằng tay với các lệnh của PowerShell

    Một sỗ lỗi khi cài đặt

        – Lỗi : “The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.”

        – Khắc phục : chạy Developer Command Prompt với quyền Admin

     6. Kiểm tra Services sau cài đặt

         Kiểm tra services cài đặt thành công chưa bằng cách mở màn hình Start hoăc menu Start, và gõ services.msc.

    Cài đặt service chạy cùng windows

        Start Services  bằng cách kích chuột phải và Start. Kiểm tra log xem thông tin hoạt động của Services.

    Cài đặt service chạy cùng windows

    Mít&Mít


    Phản hồi

    Phản hồi