linux 系統如何自動關機和開機

2022-06-12 19:03:10 字數 2898 閱讀 5244

不要成為乙個電能浪費者。如果你的電腦不需要開機就請把它們關機。出於方便和計算機宅的考慮,你可以通過配置你的 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-on

supports wake-on: pumbg

wake-on: g

這條命令輸出的 「supports wake-on」 欄位會告訴你你的網絡卡現在開啟了哪些功能:

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 **會和 edx 可以學習更多關於 linux 的免費 linux 入門[2]教程。

(題圖:the observatory at delhi[3])

via:

本文由 lctt[7] 原創編譯,linux中國[8] 榮譽推出

linux 系統如何自動關機和開機

不要成為乙個電能浪費者。如果你的電腦不需要開機就請把它們關機。出於方便和計算機宅的考慮,你可以通過配置你的 linux 計算機實現自動喚醒和關閉。寶貴的系統執行時間 有時候有些電腦需要一直處在開機狀態,在不超過電腦執行時間的限制下這種情況是被允許的。有些人為他們的計算機可以長時間的正常執行而感到自豪...

系統自動關機

問題描述 公司一台伺服器,安裝的windows server 2012,有一天每隔兩個小時關機 解決情況 首先開啟事件檢視器 eventvwr 篩選事件id 6006 關機id 來檢視上次關機的事件,然後查詢到上次事件的關機的情況,是由乙個程序wlms.exe導致系統關機,經查詢,這個程序是微軟授權...

如何取消dos的自動關機?

用了 at 04 00 shutdown s 來完成4 00 關機,結果就建立了乙個new job 每天到4 00就關機,現在想取消用什麼命令?謝謝!注 那種抄襲別人的什麼 shutdown a 的就不要來了,該命令只用於取消正在計時的倒計時關機,對於用at建立的關機的new job沒有用。處理辦法...