当前位置:首页 > CN2资讯 > 正文内容

windows服务器查询本地session

2天前CN2资讯


起因:

我时常需要查看一些Windows Service的状态,每次使用控制面板->服务这种方式来查看服务状态不仅浪费时间而且也很无聊,干脆写个Ruby脚本吧。让Ruby脚本来通知我某个Windows Service的状态是如何,并根据状态给我一些提示。

 

主要内容:

你可以从本篇daily works with ruby中看到以下技术/工具的使用。

  • 使用RubyGems来查询,安装Gem包。
  • Ruby中查询Windows服务状态。
  • Ruby中调用Windows API。

 

一,安装 RubyGems

1,你可以去RubyForge下载最新的RubyGems。RubyGems是Ruby中使用的一种包管理中工具。当你安装完RubyGems后,便可以使用gem命令来查询安装别的Ruby库。下载完RubyGems安装包的zip文件解压至:D:\Temp目录下,执行如下命令,安装RubyGems:



C:\Documents and Settings\Jerry>d: D:\>cd Temp\rubygems-1.3.1 D:\Temp\rubygems-1.3.1>setup.rb mkdir -p C:/Ruby/lib/ruby/site_ruby/1.8 mkdir -p C:/Ruby/bin



安装完成后便可以使用RubyGems来查询和安装Ruby的gem包了。

 

二,安装win32-service包

1,查询

安装RubyGems包管理器后,我们可以用gem命令来查询和安装ruby的gem包。我们访问Windows服务时,需要用到wind32-service包,现在我们在命令行了键入以下命令进行查询:

 

1 D: \ Temp \ rubygems- 1.3 . 1 > gem query -r -n service 2 3 *** REMOTE GEMS *** 4 5 actionservice ( 0.3 . 0 ) 6 actionwebservice ( 1.2 . 6 ) 7 ar_mailer_service ( 0.1 . 1 ) 8 contxtlservice ( 0.1 . 1 ) 9 dot_net_services ( 0.4 . 0 , 0.3 . 0 ) 10 mongrel_service ( 0.3 . 4 , 0.1 ) 11 ruby_service_helper ( 0.1 . 0 ) 12 servicemerchant ( 0.1 . 0 ) 13 win32-service ( 0.7 . 0 ) 14 win32_service_manager ( 0.1 . 3 ) 15 16 D: \ Temp \ rubygems- 1.3 . 1 >



gem query命令是查询可用gem包的命令,你可以通过gem --help来得到更多的可用选项。

其中gem query -r -n service表示去远端服务器[-r选项]上寻找名称[-n选项]为service的gem包。

在上面的13行中显示了我们需要用到的包,即:win32-service。

 

2,安装win32-service

执行如下命令安装win32-service包:

1 D: \ Temp \ rubygems- 1.3 . 1 > gem install -r win32-service 2 Successfully installed win32-service- 0.7 . 0 -x86-mswin32- 60 3 1 gem installed 4 Installing ri documentation for win32-service- 0.7 . 0 -x86-mswin32- 60 5 Installing RDoc documentation for win32-service- 0.7 . 0 -x86-mswin32- 60 6 7 D: \ Temp \ rubygems- 1.3 . 1 >

  在安装完win32-service之后,我们便可以查看win32-service的相关文档及API说明了。

先从命令行执行:

1 D: \ Soft \ AutoHotkey104805 > gem server 2 Starting gem server on http: // localhost: 8808 /


 

http://localhost:8808/,便可以访问所有的Gem包的Documents。

 

三,编写查询Windows Service状态脚本

万事俱备,只欠东风了。我们开始编写脚本。


#!/ruby/bin require "win32/service" require "Win32API" include Win32 if Service.exists?("WebClient") && Service.status("WebClient").current_state == "running" beep = Win32API.new('kernel32','Beep',['I']*2,'V') 5.times do beep.call(750,300) sleep(1) end end


这里需要解释一下的是第7行:    beep = Win32API.new('kernel32','Beep',['I']*2,'V')

这里我们申明了一个Windows API,其中Win32API.new方法有四个参数。

1,API所在动态链接库的名称,如user32,kernel32....

2,API的方法名称。

3,传入参数类型:两个Integer类型的参数,常用的还有['P']-Pointer,['V']-void,['n']-number.

4,返回值类型。

 

四,结语

利用RubyGems来查询Ruby的库很方便。 同样地利用Ruby的一些模块,来调用Windows API完成特定任务也很简单。

当遇到一些API不了解时,可以利用"gem server"命令打开本地www服务查看相应Gem文档。



    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/30242.html

    分享给朋友:

    “windows服务器查询本地session” 的相关文章

    Lightlayer在菲律宾的应用与优势:智能光电解决方案

    光电技术的迅速发展让我们有机会迎接许多新概念和新技术,其中Lightlayer便是一个值得关注的例子。在我第一次听到“Lightlayer”这个词时,它似乎蕴含了科技的无限可能。Lightlayer简单来说是一个光电解决方案,能够通过创新的方式来管理和优化光源。它不仅在设计上追求完美,更在功能上实现...

    AS4837和AS9929线路在国际通信中的优势与应用分析

    在了解AS4837线路的历史背景时,回顾其起源与发展非常重要。AS4837线路,通常被称为中国联通的骨干网线路,最早始建于20世纪90年代。那时,随着互联网的兴起,全球对网络基础设施的需求不断增加,中国决定建立更强大的国际连接,通过AS4837将中国大陆与香港、美国、日本、韩国等多地紧密相连。这个决...

    便宜的国外主机推荐:性价比高的主机选择指南

    在选择国外主机服务时,价格通常是一个重要的考量因素。面对纷繁复杂的选择,我发现一些便宜且性能不错的国外主机服务,让我大为惊喜。这里,我想和大家分享几款我认为性价比非常高的国外主机。 首先,我接触到UCloud。它的起售价为34元一个月,提供包括云服务器、GPU服务器和裸金属服务器在内的多种产品。这种...

    HostDare VPS主机服务评测:高性价比与用户体验的完美结合

    在与HostDare的互动中,我感受到这家公司在客户支持与用户体验方面的一些亮点和不足。正如我们所知,HostDare是一家致力于提供高性价比VPS主机服务的公司,尤其在针对中国大陆用户的优化上表现突出。虽然服务上有一些待改善之处,但总体而言,它的客户支持体系还是相对高效的。 首先,HostDare...

    如何获取和使用evoxt优惠码,轻松享受购物乐趣与实惠

    在如今这个充满折扣与优惠的购物时代,获得evoxt的优惠码变得尤为重要。我还是忍不住想和大家分享一些获取这些优惠码的实用方法。这样不仅能够节省开支,还能在消费时感受到更多的乐趣。 官方网站注册及会员优惠 首先,我要强调的就是在evoxt的官方网站上注册一个账户。这一步真的很重要。注册后,你可以直接享...

    163骨干网概述与应用解析:构建未来高效、安全的网络

    1. 163骨干网概述 1.1 163骨干网的定义与特点 163骨干网是中国电信在互联网骨干网络中的重要组成部分,它承载了大量的数据传输,连接着全国各地的用户和服务。简单来说,可以把它视为一个快速而稳定的信息高速公路,确保信息在不同地点之间的高效流动。作为一个骨干网络,它具有高带宽、低延时和高可靠性...