Maison  >  Article  >  Tutoriel système  >  Comment arrêter et démarrer automatiquement un système Linux

Comment arrêter et démarrer automatiquement un système Linux

WBOY
WBOYavant
2024-03-01 08:00:24755parcourir

Ne gaspillez pas d’énergie. Si vos ordinateurs n'ont pas besoin d'être allumés, éteignez-les. Pour plus de commodité et pour les amateurs d'informatique, vous pouvez configurer votre ordinateur Linux pour qu'il se réveille et s'éteigne automatiquement.

Disponibilité précieuse du système

Parfois, certains ordinateurs doivent être allumés en permanence. Cette situation est autorisée tant que la durée de fonctionnement de l'ordinateur n'est pas dépassée. Certaines personnes sont fières de maintenir leur ordinateur opérationnel pendant de longues périodes, et nous disposons désormais de correctifs du noyau qui ne nécessitent un arrêt de la machine qu'en cas de panne matérielle. Ce qui me semble plus pratique, c'est d'économiser de l'énergie en réduisant l'usure des pièces mobiles et en arrêtant la machine lorsqu'elle n'est pas nécessaire. Par exemple, vous pouvez réactiver le serveur de sauvegarde à une heure spécifiée, effectuer la sauvegarde, puis l'arrêter jusqu'à ce qu'il soit prêt pour la prochaine sauvegarde. Vous pouvez également configurer votre passerelle Internet pour qu'elle ne s'exécute qu'à des heures précises. Tout ce qui n'a pas besoin de fonctionner en permanence peut être configuré pour s'allumer lorsqu'il doit fonctionner et s'éteindre lorsqu'il a terminé son travail.

Veille du système

Pour les ordinateurs qui n'ont pas besoin de fonctionner en permanence, utilisez la tâche planifiée cron de root (c'est-à-dire /etc/crontab) pour arrêter l'ordinateur de manière fiable. Cet exemple crée une tâche planifiée racine pour implémenter un arrêt programmé à 11h15 tous les soirs.

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

L'exemple suivant s'exécute uniquement du lundi au vendredi :

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

Vous pouvez créer plusieurs tâches cron pour différentes dates et heures. Tous les champs d'heure et de date peuvent être compris via la commande man 5 crontab.

Un moyen simple et rapide consiste à utiliser le fichier /etc/crontab. Mais de cette façon, vous devez préciser l'utilisateur :

15 23 * * 1-5 root shutdown -h now
Réveil automatique

Avoir un réveil automatique est une bonne chose ; la plupart de mes collègues SUSE (SUSE Linux) sont à Nuremberg, je dois donc me lever à 5 heures du matin pour pouvoir travailler quelques heures avec mes collègues. Mon ordinateur commence automatiquement à fonctionner à 5h30 du matin et je me traîne avec mon café jusqu'à mon bureau et je commence. Appuyer sur le bouton d'alimentation peut ne pas sembler très grave, mais à ce moment-là de la journée, chaque petite chose devient une grosse affaire.

Réveiller un ordinateur Linux n'est peut-être pas aussi fiable que de l'éteindre, vous souhaiterez donc peut-être essayer une approche différente. Vous pouvez utiliser le réveil à distance (Wake-On-LAN), le réveil RTC ou une méthode de réveil planifiée définie par le BIOS du PC. La raison pour laquelle ces méthodes fonctionnent est que lorsque vous éteignez votre ordinateur, vous ne l'éteignez pas réellement ; il est dans un état de très faible consommation et peut toujours recevoir et répondre aux signaux. Il ne s'éteint complètement que lorsque vous débranchez l'interrupteur d'alimentation.

Réveil du BIOS

Le réveil du BIOS est le plus fiable. Le BIOS de la carte mère de mon système dispose d'un planificateur de réveil facile à utiliser (Figure 1). C'est tout aussi simple pour vous.

linux 系统如何自动关机和开机

Figure 1 : Le BIOS de mon système dispose d'une minuterie de réveil facile à utiliser.

Réveil à distance de l'hôte (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 -s eth0 wol g

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

linux 系统如何自动关机和开机

图 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] ;对于现在的大多数发行版来说这种方法已经有点过时了。

下周继续了解更多关于使用 RTC 唤醒的方法。

通过 Linux 基金会和 edX 可以学习更多关于 Linux 的免费 Linux 入门[2]教程。

(题图:The Observatory at Delhi[3]


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer