0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux计算机实现自动唤醒和关闭的方法步骤详解

Linux爱好者 2017-12-08 11:07 次阅读

不要成为一个电能浪费者。如果你的电脑不需要开机就请把它们关机。出于方便和计算机宅的考虑,你可以通过配置你的 Linux 计算机实现自动唤醒和关闭。

宝贵的系统运行时间

有时候有些电脑需要一直处在开机状态,在不超过电脑运行时间的限制下这种情况是被允许的。有些人为他们的计算机可以长时间的正常运行而感到自豪,且现在我们有内核热补丁能够实现只有在硬件发生故障时才需要机器关机。我认为比较实际可行的是,像减少移动部件磨损一样节省电能,且在不需要机器运行的情况下将其关机。比如,你可以在规定的时间内唤醒备份服务器,执行备份,然后关闭它直到它要进行下一次备份。或者,你可以设置你的互联网网关只在特定的时间运行。任何不需要一直运行的东西都可以将其配置成在其需要工作的时候打开,待其完成工作后将其关闭。

系统休眠

对于不需要一直运行的电脑,使用 root 的 cron 定时任务(即 /etc/crontab)可以可靠地关闭电脑。这个例子创建一个 root 定时任务实现每天晚上 11 点 15 分定时关机。

# crontab -e -u root

# m hdom mon dow command

1523 * * * /sbin/shutdown -hnow

以下示例仅在周一至周五运行:

1523 * * 1-5 /sbin/shutdown -hnow

您可以为不同的日期和时间创建多个 cron 作业。 通过命令man 5 crontab可以了解所有时间和日期的字段。

一个快速、容易的方式是,使用/etc/crontab文件。但这样你必须指定用户:

1523 * * 1-5root shutdown -hnow

自动唤醒

实现自动唤醒是一件很酷的事情;我大多数 SUSE (SUSE Linux)的同事都在纽伦堡,因此,因此为了跟同事能有几小时一起工作的时间,我不得不需要在凌晨五点起床。我的计算机早上 5 点半自动开始工作,而我只需要将自己和咖啡拖到我的桌子上就可以开始工作了。按下电源按钮看起来好像并不是什么大事,但是在每天的那个时候每件小事都会变得很大。

唤醒 Linux 计算机可能不如关闭它可靠,因此你可能需要尝试不同的办法。你可以使用远程唤醒(Wake-On-LAN)、RTC 唤醒或者个人电脑的 BIOS 设置预定的唤醒这些方式。这些方式可行的原因是,当你关闭电脑时,这并不是真正关闭了计算机;此时计算机处在极低功耗状态且还可以接受和响应信号。只有在你拔掉电源开关时其才彻底关闭。

BIOS 唤醒

BIOS 唤醒是最可靠的。我的系统主板 BIOS 有一个易于使用的唤醒调度程序 (图 1)。对你来说也是一样的容易。

图 1:我的系统 BIOS 有个易用的唤醒定时器

主机远程唤醒(Wake-On-LAN)

远程唤醒是仅次于 BIOS 唤醒的又一种可靠的唤醒方法。这需要你从第二台计算机发送信号到所要打开的计算机。可以使用 Arduino树莓派Raspberry Pi发送给基于 Linux 的路由器或者任何 Linux 计算机的唤醒信号。首先,查看系统主板 BIOS 是否支持 Wake-On-LAN ,要是支持的话,必须先启动它,因为它被默认为禁用。

然后,需要一个支持 Wake-On-LAN 的网卡;无线网卡并不支持。你需要运行ethtool命令查看网卡是否支持 Wake-On-LAN :

# ethtool eth0 | grep -i wake-on

Supports Wake-on: pumbg

Wake-on: g

这条命令输出的 “Supports Wake-on” 字段会告诉你你的网卡现在开启了哪些功能:

d — 禁用

p — 物理活动唤醒

u — 单播消息唤醒

m — 多播(组播)消息唤醒

b — 广播消息唤醒

a — ARP 唤醒

g — 特定数据包magic packet唤醒

s — 设有密码的特定数据包magic packet唤醒

ethtool命令的 man 手册并没说清楚p选项的作用;这表明任何信号都会导致唤醒。然而,在我的测试中它并没有这么做。想要实现远程唤醒主机,必须支持的功能是g—— 特定数据包magic packet唤醒,而且下面的“Wake-on” 行显示这个功能已经在启用了。如果它没有被启用,你可以通过ethtool命令来启用它。

# ethtool -s eth0 wol g

这条命令可能会在重启后失效,所以为了确保万无一失,你可以创建个 root 用户的定时任务(cron)在每次重启的时候来执行这条命令。

@reboot/usr/bin/ethtool -seth0 wolg

另一个选择是最近的网络管理器Network Manager版本有一个很好的小复选框来启用 Wake-On-LAN(图 2)。

图 2:启用 Wake on LAN

这里有一个可以用于设置密码的地方,但是如果你的网络接口不支持安全开机Secure On密码,它就不起作用。

现在你需要配置第二台计算机来发送唤醒信号。你并不需要 root 权限,所以你可以为你的普通用户创建 cron 任务。你需要用到的是想要唤醒的机器的网络接口和MAC地址信息

3008 * * * /usr/bin/wakeonlan D0:50:99:82:E7:2B

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11290

    浏览量

    209290
  • 计算机
    +关注

    关注

    19

    文章

    7486

    浏览量

    87844

原文标题:如何自动唤醒和关闭 Linux

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计算机机房自动计费系统

    想到使用微处理器代替人工,由此诞生的计算机机房自动计费管理系统是一套适用各类机房管理的高科技产品。它的最主要功能就是实现机房管理的自动化和现代化,用户上机
    发表于 06-27 23:58

    《Visual C# 2008程序设计经典案例设计与实现》---计算机的注销、关闭和重新启动

    《Visual C# 2008程序设计经典案例设计与实现》---计算机的注销、关闭和重新启动.zip
    发表于 06-17 23:01

    Linux计算机概论

    Linux复习笔记-计算机概论
    发表于 09-24 08:42

    计算机解题的基本思想方法步骤

    计算机解题的基本思想方法步骤。是对要解决一个问题或要完成一项任务所采取的方法步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、
    发表于 11-02 06:15

    如何实现计算机对示波器进行远程控制?

    如何实现计算机对示波器进行远程控制?计算机控制示波器的步骤方法是什么?
    发表于 05-10 06:47

    计算机实现的控制算法设计

    计算机控制技术及工程应用第九章设计步骤: 1.设计假象的连续控制器D(s) 2.将D(s)离散化为D(z) 3.设计由计算机实现的控制算法 4.校验 9.1.2 PID控制规律 1.比
    发表于 09-01 06:38

    计算机硬件维护的方法

    维护的过程中,要先对静态的故障进行分析,之后在查看其它的可能存在的动态故障。2计算机硬件维护的方法2.1直接进行观察的方法计算机硬件维护过程中采用直接观察法是最为直接和最为简单的
    发表于 09-17 07:15

    什么是程序?什么是计算机

    什么是程序?程序(Program)流程、议程、行程、…为了完成某项任务,解决某个问题需要执行的一系列步骤计算机程序为了完成某项任务,解决某个问题由计算机执行的一系列指令(步骤)什么是
    发表于 11-23 09:02

    利用计算机设计单片开关电源的方法步骤

    利用计算机设计单片开关电源讲座 第二讲 利用计算机设计单片开关电源的方法步骤 下面对35
    发表于 07-09 15:02 842次阅读
    利用<b class='flag-5'>计算机</b>设计单片开关电源的<b class='flag-5'>方法</b>与<b class='flag-5'>步骤</b>

    什么是计算机算法?

    什么是计算机算法?要使计算机工作,您就必须编写计算机程序。要编写计算机程序,您就必须一步步地告诉计算机,您究竟想让它干什么。然后,
    发表于 08-03 08:50 3102次阅读

    数字计算机的硬件组成详解

    数字计算机的硬件组成详解    用一个算盘,一张纸,一支笔来计算y=ax+b-c这个题目,步骤如下。 表1.2 解题步骤和数据记录在横格
    发表于 04-13 13:44 1296次阅读

    C#教程之远程关闭重启计算机

    C#教程之远程关闭重启计算机,很好的C#资料,快来学习吧。
    发表于 04-20 15:27 11次下载

    基于嵌入式Linux网络计算机的操作系统的实现方法浅析

    解决多用户、会话控制、状态表示等一系列技术难点。网络计算机设计中的一个主要工作就是瘦客户机操作系统的设计,在此我们把瘦客户端操作系统称为网络计算机操作系统。本文从Linux 体系结构的角度给出网络
    发表于 03-22 16:27 871次阅读
    基于嵌入式<b class='flag-5'>Linux</b>网络<b class='flag-5'>计算机</b>的操作系统的<b class='flag-5'>实现</b><b class='flag-5'>方法</b>浅析

    微软:请勿™关闭计算机

    近日,IT之家用户 @zhang_32 为我们带来了一则非常有意思的投稿:在 Windows 10 insider 21313 版本中,系统更新提示的 “请勿关闭计算机”变成为了 “请勿关闭
    的头像 发表于 04-07 10:02 2177次阅读

    数控加工计算机辅助编程步骤

    数控加工程序可通过手工编程或计算机自动编程来获得。目前计算机自动编程采用图形交互式自动编程,即计算机
    发表于 10-18 09:39 645次阅读