首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测PC是否正在UPS电源和关机计算机上运行

检测PC是否正在UPS电源和关机计算机上运行
EN

Stack Overflow用户
提问于 2012-11-28 17:08:04
回答 2查看 1.2K关注 0票数 0

我在晚上下载了大量的数据,我的电脑正在通过UPS运行。有没有什么方法可以检测到电源故障并命令我的电脑自动关机?因为我晚上工作,而且没有人关掉电脑,如果有人能帮上忙,那就太好了。有可能吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-16 21:54:50

重要提示:下面提供的脚本将在网络关闭时导致系统关闭,因此使用它们的风险自负!

如果您有一台响应ICMP回应请求的网络主机(例如您的路由器),并且不是由UPS供电(或者至少网络设备不是由UPS供电),那么做您想做的事情的一种不太优雅的方法是每隔几秒钟对该主机执行ping命令,如果该主机已关闭,则关闭PC:

代码语言:javascript
复制
#!/bin/bash
while :
do
  ping -c 1 -w 5 192.168.0.1 &> /dev/null
  if [  $? -gt 0  ]; then
    shutdown -hP now
    break
  fi
  sleep 10s
done

您必须将192.168.0.1更改为要ping通的网络主机的IP地址。

您还必须使用chmod +x <script_name>使脚本可执行,并在/etc/rc.local中对其进行调用(不要忘记附加一个&以使其在后台运行),这将在引导时以根用户身份运行脚本。

为了完整起见,如果PC运行的是Windows XP,则可以使用以下批处理文件:

代码语言:javascript
复制
:loop
ping -n 1 -w 5000 192.168.0.1
if not %ERRORLEVEL% == 0 (
    shutdown -s
    goto end
)
sleep 10
goto loop
:end

请注意,Windows批处理文件需要sleep命令,该命令可以作为Windows Server2003资源工具包工具包(available as a free download from Microsoft's site)的一部分安装。

票数 4
EN

Stack Overflow用户

发布于 2012-11-28 17:40:14

如果它是一台先进先出计算机,并且它有一个数据端口,你可以使用PowerChute。它是一个基于java的图形用户界面(如果这是你的服务器,这可能是一个问题),它能做你所请求的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13601419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档