Danh mục

Các chương trình quản lý phòng máy hiện nay ở Việt Nam - 6

Số trang: 25      Loại file: pdf      Dung lượng: 592.87 KB      Lượt xem: 11      Lượt tải: 0    
Hoai.2512

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong quá trình thực hiện phần mềm, có một yêu cầu quản trị hệ thống là người quản trị muốn biết tại thời điểm hiện tại, máy khách đang hoạt động những dịch vụ (service) gì. Người quản trị có thể xem danh sách các dịch vụ đó, đồng thời có thể thay đổi bằng cách thêm (mở một dịch vụ mới), bớt (tắt một dịch vụ đang chạy). Yêu cầu này đòi hỏi cần phải tìm hiểu cơ chế quản lý dịch vụ trong hệ điều hành Windows.Ứng dụng có khả năng hoạt động trong một khỏang thời gian...
Nội dung trích xuất từ tài liệu:
Các chương trình quản lý phòng máy hiện nay ở Việt Nam - 6 3.5 Tương tác hệ thống – Điều khiển các dịch vụ có trên hệ thống: Trong quá trình thực hiện phần mềm, có một yêu cầu quản trị hệ thống làngười quản trị muốn biết tại thời điểm hiện tại, máy khách đang hoạt động nhữngdịch vụ (service) gì. Người quản trị có thể xem danh sách các dịch vụ đó, đồng thờicó thể thay đổi bằng cách thêm (mở một dịch vụ mới), bớt (tắt một dịch vụ đangchạy). Yêu cầu này đòi hỏi cần phải tìm hiểu cơ chế quản lý dịch vụ trong hệ điềuhành Windows. 3.5.1 Dịch vụ 3.5.1.1 Khái niệm: Ứng dụng có khả năng hoạt động trong một khỏang thời gian dài trong mộtsession của hệ điều hành Windows được gọi là dịch vụ. Các dịch vụ có thể tự độngchạy lên mỗi khi máy khởi động, có thể dừng và khởi động lại, và không đưa ragiao diện với người dùng. Dịch vụ thường được sử dụng trên server hoặc bất cứmáy nào cần các tính năng hoạt động lâu dài nhưng không cần can thiệp bởi ngườidùng. 3.5.1.2 Loại dịch vụ: Ta không đi quá sâu vào các dịch vụ cấp thấp. Ta chỉ quan tâm các dịch vụdạng ứng dụng chạy là 2 loại Win32OwnProcess và Win32ShareProcess. 3.5.1.3 Vòng đời của dịch vụ: Một dịch vụ trải qua nhiều trạng thái trong vòng đời hoạt động của nó. Trướchết, dịch vụ được cài đặt trong hệ thống mà nó sẽ chạy. Quá trình này thực thi bộcài đặt của dịch vụ và nạp dịch vụ vào trong Service Control Manager (Bộ Quản lýĐiều khiển Dịch vụ). Service Control Manager là một công cụ do hệ điều hànhWindows cung cấp để quản trị các dịch vụ. 126 Sau khi dịch vụ được nạp, nó phải được khởi động (start). Khởi động dịch vụcho phép nó hoạt động. Một dịch vụ đang hoạt động (running) có thể tồn tại ở trạngthái này cho đến khi nó được ngưng lại (stop) hoặc dừng hẳn (pause) hay máyshutdown. Dịch vụ có thể tồn tại dưới 3 trạng thái căn bản : Đang hoạt động(Running), Ngưng (Paused), hay Dừng (Stopped). Dịch vụ còn báo về các trạng tháichuyển (pending) của nó: Tiếp tục Chuyển (ContinuePending), Chuyển Ngưng(PausePending), Chuyển Khởi động (StartPending), hay Chuyển Dừng(StopPending). Các trạng thái chuyển cho biết lệnh nào mới vừa được kích hoạt,nhưng chưa thực thi xong. Ngoài ra, dịch vụ cần thêm thông tin về trạng thái khởi động của nó. Một sốdịch vụ rất cần thiết cho hệ thống (như dịch vụ DHCP), còn một số thì không.Người sử dụng máy có thể cần kích hoạt tự động (Automatic), kích hoạt bằng tay(Manual), hay vô hiệu hóa (Disabled) dịch vụ. Vì vậy, dịch vụ có 3 trạng thái khởiđộng (trạng thái dịch vụ khi máy vừa khởi động xong) là Tự động (Automatic),Bằng tay (Manual), Vô hiệu (Disabled). Việc điều khiển các dịch vụ đang hoạt động chính là xem danh sách các dịchvụ, thay đổi 3 trạng thái hoạt động là Đang hoạt động (Running), Ngưng (Paused),hay Dừng (Stopped), và 3 trạng thái khởi động là : Tự động (Automatic), Bằng tay(Manual), Vô hiệu (Disabled). Tuy nhiên, với yêu cầu ở đầu mục, ta chỉ cần điềukhiển 2 trạng thái hoạt động là Running và Stopped, và 3 trạng thái khởi động đãnêu là đủ. 3.5.2 Điều khiển các dịch vụ đang hoạt động trên hệ thống: Qua kiến thức khái quát về dịch vụ ở 3.5.1, ta có thể thấy rằng để truy xuấtđến các dịch vụ đang chạy trên hệ thống, ta phải thông qua Service ControlManager. Đây là cách chung nhất, và có vẻ là cách khả thi duy nhất trên Visual C++do VC++ 6.0 không hỗ trợ về truy xuất liên quan đến dịch vụ. 127 3.5.2.1 Các hàm API sử dụng : 3.5.2.1.1 OpenSCManager: Chức năng : thiết lập kết nối đến Service Control Manager trên máy tính và mở cơ sở dữ liệu của Service Control Manager. SC_HANDLE OpenSCManager( LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess ); Ý nghĩa tham sô: [in] lpMachineName : tên máy tính. Nếu là NULL, sẽ mở chính máy tính cụcbộ này. lpDatabaseName : tên của cơ sở dữ liệu Service Control Manager cần đượcmở. dwDesiredAccess : quyền truy cập mong muốn, xem chi tiết trong MSDNvề các quyền truy cập. Giá trị trả về: [out] Nếu thành công, trả về handle của cơ sở dữ liệu Service Control Managerđược mở. Nếu thất bại, trả về NULL. . Để biết lỗi, gọi GetLastError. 3.5.2.1.2 EnumServicesStatus Chức năng: đếm và lấy thông tin về các dịch vụ trong một cơ sở dữ liệuService Control Manager được mở. BOOL EnumServicesStatus( SC_HANDLE hSCManager, DWORD dwServiceType, 128 DWORD dw ...

Tài liệu được xem nhiều: