Windows环境下一个Service控制Shell的设计与实现(3)
时间:2017-06-08 21:12 来源:毕业论文 作者:毕业论文 点击:次
序转换成 Windows 服务,继而设计一个可以对服务进行全面控制的 Shell 。整个研究 过程旨在探讨 Windows 服务编程中的一些细节设计 , 以及命名管道在进程间通讯中的 应用。 1.3 1.3 1.3 1.3 研究目标 研究目标 研究目标 研究目标 Windows 服务之所以成为操作系统中的重要组成部分,就在于它能够为系统提供 各种各样的功能支持 , 而这其中所涉及到的进程间通信 、 内存管理等方面的内容又是 操作系统中最为核心的技术 。 因此 , 对一个服务程序的要求也比一般应用程序严苛许 多,如何设计实现一个功能健全、安全稳定的服务程序便是本文的研究目标之一 , 而 服务程序所要完成的功能本身并不是本文所要重点讨论的内容。 Windows 服务并不是一个孤立的程序,一个强大的服务往往要同时与多个进程进 行通信 , 甚至通过网络与远程主机连接 。 因此 , 进程间通信的方法与步骤也是本文一 个重要的研究对象 。 Windows 进程通信方法有很多种 , 选择一个适合目标程序的方法 ,本科毕业设计说明书(论文) 并将其完善地嵌入到服务程序中去,在整个项目的实现过程中是相当重要的一步。 正 是 由于 Windows 服务的功能非常强大,因此需要对其进行妥善的控制。在这方 面, Windows 操作系统自带的服务管理器就是一个非常值得借鉴的例子。它不仅能够 对服务进行启动 、 停止 、 暂停 、 恢复等常用操作 , 还能具体列出操作系统中的所有服 务及其相关信息。本文所要设计实现的,就是一个类似该服务管理器的 Shell , 除了 能够对现有服务进行操作以外 , 还能够通过指定的服务程序创建并 向 操作系统注册一 个新服务,这样才可以更加方便测试自己编写的服务程序。 综上所述,本文的最终设计目标是一个能够实现将给定字符串翻转的服务程序, 用于检测服务功能的本机客户端程序,以及一个用于创建、删除、控制指定服务 的 Shell 程序。客户端程序与服务之间利用命名管道进行通信。 1.4 1.4 1.4 1.4 研究方法 研究方法 研究方法 研究方法 1.4.1 开发步骤 首先需要编写测试程序并搭建测试环境,即编制一个基于 C/S 模式的面向连接的 采用命名管道的系统 , 该系统搭建成功后 , 将服务器程序改写成 Windows 服务 , 即在 服务控制管理器( SCM )的控制下运行的一个 Windows 服务。当使用 Windows 的 “ 控 制面板 ” → “ 管理工具 ” → “ 服务 ” 启动这个服务之后 , 客户端程序应该可以正确运行。 接下来需要编写控制该服务的 Shell 。出于简单起见首先将该 shell 程序实现为 一个在命令行方式执行的程序,命令行的执行方式如下所示: 例如: servicesshell 程序在 E 盘根目录下的 service 文件夹中,在命令行中键 入如下形式的命令: E : \service > servicesshell $[ 命令 ] [ 参数 1] , [ 参数 2] , 其中 , “ $ ” 为命令前缀符,命令及其参数含义见表 1 。 表 1 命令行方式下的命令及其参数的含义控制命令如下: stop 含义:停(终)止服务 p ause 含义:暂停服务 r esume 含义:恢复(继续)服务 i nterrogate 含义:查询服务状态 命令行方式的 Shell 程序完成后,再将其改写成图形用户界面的典型的 Window s 程序,其界面参考 Windows XP “ 控制面板 ”→“ 管理工具 ”→“ 服务 ” 的样式 。 综上所述,本文的研究开发步骤流程图如图 1 所示。1.4.2 开发环境 (责任编辑:qin) |