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

宝贵的系统运行时间

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

系统休眠

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

# crontab -e -u root
# m h  dom mon dow   command
15 23 * * * /sbin/shutdown -h now

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

15 23 * * 1-5 /sbin/shutdown -h now

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

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

15 23 * * 1-5 root shutdown -h now
自动唤醒

实现自动唤醒是一件很酷的事情;我大多数 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-onSupports Wake-on: pumbgWake-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 -s eth0 wol g

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

图 2:启用 Wake on LAN

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

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

30 08 * * * /usr/bin/wakeonlan D0:50:99:82:E7:2B
RTC 唤醒

通过使用实时闹钟来唤醒计算机是最不可靠的方法。对于这个方法,可以参看 Wake Up Linux With an RTC Alarm Clock[1] ;对于现在的大多数发行版来说这种方法已经有点过时了。

linux 系统如何自动关机和开机相关推荐

  1. 去掉linux开关机图片,在Deepin Linux系统下去掉NVIDIA开机Logo的方法

    要实现在deepin Linux或其他Linux系统下去掉NVIDIA开机Logo非常的简单,只需要两步就可以了,可以运用命令操作,也可手动操作.安装NVIDIA请参考在deepin系统中安装英伟达N ...

  2. Linux系统 设置 cockpit 自动开机启动时异常问题处理(设置systemctl enable cockpit 异常【解决办法】)

    Linux系统 设置 cockpit 自动开机启动时异常问题处理 问题系统: Centos7 Fedora29 RedHat7 systemctl enable cockpit 时,会出现如下错误: ...

  3. Linux系统【Ubuntu】开机自启脚本及配置

    Linux系统[Ubuntu]开机自启脚本及配置 1.使用vim命令在`/etc/init.d`目录下新建一个xx.sh,文件名可自定义,以test.sh为例 2.保存成功以后,设置文本权限,否则不生 ...

  4. linux系统下设置oracle开机自动启动

    在Linux系统中,安装好oracle数据库服务后,并不像在Windows系统下一样,oracle服务在默认情况下会随时系统的启动自动启动.Linux系统中,是需要用户去手动进行设置,才能实现orac ...

  5. linux ata4 serror,linux系统救援模式解决开机引导失败问题

    问题:linux开机后进入grub命令行且grub命令行输入命令报错 推测:因之前系统装好以后改变过分区,而导致不能读取到grub主开机引导程序 在解决这个问题之前我们先来了解linux开机启动过程. ...

  6. Linux系统学习——ubuntu16.04开机蓝屏问题

    1 蓝屏原因 由于频繁地强制关机等原因造成 xserver-xorg包出现损坏,故在开机时屏幕显示出现问题. 1.1 顺便提一下 -xorg -xorg 我们知道,Linux内核本身是没有图形化界面的 ...

  7. linux fcitx启动 窗口,Linux系统Fcitx中文输入法开机启动方法

    Debian.FC.Ubuntu的默认中文输入法都是SCIM,其实也挺好用的,有点类似windows下微软拼音输入法,而fcitx则有点类似windows下的紫光输入法,喜欢哪一个要看个人习惯了.我试 ...

  8. linux系统下如何修改开机图片,Ubuntu Kylin下修改登录背景,用户头像,开机动画及自动更换壁纸...

    以下操作系统平台是Ubuntu Kylin 16.04,使用Ubuntu的朋友可参考. 一.修改默认登录背景图片 Ubuntu Kylin 16.04 LTS 默认登录背景图片是存放在 /usr/sh ...

  9. 做Linux系统后电脑无法开机,解决Linux系统无法开机的问题

    在计算机可以开机但无法进入选项画面的状况下,如果可以尝试着通过之前备份的Linux启动光盘进入操作系统,再检查是否因为GRUB无法使用而造成的,势必会方便许多.在Linux下制作启动光盘,较早的做法是 ...

最新文章

  1. ICLR2021 | 利用数据扩充提高蛋白质序列模型的通用性
  2. Java LinkedList类基本用法
  3. 面板没了_LCD面板疯狂涨价 白菜价的55寸4K电视没了
  4. ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形)
  5. .NET(C#):使用SmtpClient发送带有图片和附件的电子邮件
  6. 台式计算机有什么配置,目前台式电脑的主流配置有哪些?
  7. 如何用FineReport制作一张报表(一)
  8. 自己开发的一款基于PagedDataSource的datalist repeater控件,只需要在源程序中添加三行代码,即可实现通用分页
  9. vue实现两重列表集合,点击显示,点击隐藏的折叠效果,(默认显示集合最新一条数据,点击展开,显示集合所有数据)...
  10. UI设计素材之按钮和选框,悠闲素材帮你轻松搞定设计。
  11. Adaboost\GBDT\GBRT\组合算法
  12. OpenGL超级宝典(第7版)之清单的初始环境配置VS2019
  13. 计算机专业英语词汇大全
  14. 【南方者】【考证】【软考】【系统规划与管理师】论文万能模板
  15. 阿里云服务器学生免费领取指南
  16. opencv第九天pro
  17. C语言详解系列——函数的认识(4)函数的声明与定义,简单练习题
  18. windows7软件显示问号乱码问题
  19. 不用充电的监控摄像头有哪几种供电方式
  20. Nexus私服的下载、安装、启动、配置教程

热门文章

  1. 使用多种格式转换方法将MKV转成GIF
  2. [2018年底]电信短信自注册,rild重启等项目问题总结
  3. 2023(19届) 软件工程毕业设计选题推荐(二)
  4. 响铃:如何守护我们的观赛体验 张近东有话要说
  5. 【量化笔记】Markowitz模型的python实现
  6. 【速通版】吴恩达机器学习笔记Part2
  7. 吴恩达深度学习笔记(假期第一周)
  8. OPenGL笔记--给立方体贴图(纹理)
  9. matlab编写识别手写数字_MATLAB--数字图像处理 车牌识别之简易识别程序
  10. 【ffmpeg】ffmpeg命令工具的使用