ホームページ  >  記事  >  システムチュートリアル  >  Linux システムを自動的にシャットダウンして起動する方法

Linux システムを自動的にシャットダウンして起動する方法

WBOY
WBOY転載
2024-03-01 08:00:24753ブラウズ

エネルギーの無駄遣いにならないでください。コンピュータの電源を入れる必要がない場合は、電源を切ります。利便性とコンピューターマニア向けに、Linux コンピューターを自動的に起動およびシャットダウンするように構成できます。

貴重なシステム稼働時間

一部のコンピュータでは、常に電源を入れておく必要がある場合がありますが、コンピュータの実行時間を超えない限り、この状況は許容されます。コンピューターを長期間稼働し続けることに誇りを持っている人もいますが、現在では、ハードウェア障害が発生した場合にマシンをシャットダウンするだけで済むカーネル ホットフィックスが提供されています。私がより現実的だと思うのは、可動部品の磨耗を減らし、不必要なときに機械を停止することで電力を節約することです。たとえば、指定した時刻にバックアップ サーバーを起動してバックアップを実行し、次のバックアップの準備ができるまでシャットダウンすることができます。あるいは、特定の時間にのみ実行されるようにインターネット ゲートウェイを設定することもできます。常に実行する必要のないものは、動作する必要があるときにオンになり、仕事が完了したらオフになるように構成できます。

システム休止状態

常に実行する必要がないコンピュータの場合は、root の cron スケジュール タスク (つまり /etc/crontab) を使用してコンピュータを確実にシャットダウンします。この例では、毎晩 11:15 にスケジュールされたシャットダウンを実装するルート スケジュール タスクを作成します。

リーリー

次の例は月曜日から金曜日までのみ実行されます:

リーリー

異なる日付と時刻に複数の cron ジョブを作成できます。すべての時刻と日付フィールドは、コマンド man 5 crontab を通じて理解できます。

迅速かつ簡単な方法は、/etc/crontab ファイルを使用することです。ただし、この方法ではユーザーを指定する必要があります:

リーリー
自動ウェイクアップ

自動ウェイクアップ機能は素晴らしい機能です。SUSE (SUSE Linux) の同僚のほとんどはニュルンベルクにいるため、同僚と数時間仕事をするためには、午前 5 時に起きなければなりません。起きてください。私のコンピュータは午前 5 時 30 分に自動的に動作を開始するので、自分とコーヒーをデスクにドラッグするだけで作業を開始できます。電源ボタンを押すことは大したことではないように思えるかもしれませんが、その時間帯では、どんな小さなことでも大きな問題になります。

Linux コンピュータを起動することは、シャットダウンすることよりも信頼性が低い可能性があるため、別の方法を試してみることをお勧めします。リモート ウェイクアップ (Wake-On-LAN)、RTC ウェイクアップ、または PC の BIOS によって設定されたスケジュールされたウェイクアップ方法を使用できます。これらの方法が機能する理由は、コンピューターの電源を切るとき、実際に電源を切るのではなく、コンピューターは非常に低電力状態にあり、信号を受信して​​応答できるためです。電源スイッチを抜くと完全にオフになります。

BIOS ウェイクアップ

BIOS ウェイクアップが最も信頼性が高くなります。私のシステムのマザーボード BIOS には、使いやすいウェイク スケジューラが備わっています (図 1)。それはあなたにとっても同じくらい簡単です。

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

図 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 -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]


以上がLinux システムを自動的にシャットダウンして起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlinuxprobe.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。