Linux的開機自動開啓和自動關閉

自動關機:

一:用shutdown命令來關機
比如:
#shutdown -h 20:00
在晚上8點關機
# shutdown -h 40
在40分鐘後關機

shutdown命令一定要用root身份輸入,缺點是不能做到每天或某個時刻,而且每次需要在系統啓動後打開終端來設置這個命令
shutdown: invalid option -- -
Usage: shutdown [-akrhfnc] [-t secs] time [warning message]
-a: use /etc/shutdown.allow
-k: don't really shutdown, only warn.
-r: reboot after shutdown.
-h: halt after shutdown.
-f: do a 'fast' reboot (skip fsck).
-F: Force fsck on reboot.
-n: do not go through "init" but go down real fast.
-c: cancel a running shutdown.
-t secs: delay between warning and kill signal.
** the "time" argument is mandatory! (try "now") **

PS:我是這樣的shutdown -t 54000 就是運行15小時後自動關機

1:shutdown命令關機

  各參數功能:

  -c 取消前一個shutdown命令。

  -f 重新啓動時不執行fsck(注:fsck是Linux下的一個檢查和修復文件系統的程序)。

  -F 重新啓動時執行fsck。  -h 將系統關機,在某種程度上功能與halt命令相當。

  -k 只是送出信息給所有用戶,但並不會真正關機。

  -n 不調用init程序關機,而是由shutdown自己進行(一般關機程序是由shutdown調用init來實現關機動作),使用此參數將加快關機速度,但是不建議用戶使用此種關機方式。

  -r 關機之後重新啓動系統。

     now  表示立即執行,now=+0

  -f<秒數> 送出警告信息和關機信號之間要延遲多少秒。警告信息將提醒用戶保存當前進行的工作。

  [時間] 設置多久時間後執行shutdown命令。時間參數有hh:mm或+m兩種模式。hh:mm格式表示在幾點幾分執行shutdown命令。例如“shutdown 10:45”表示將在10:45執行shutdown。+m表示m分鐘後執行shutdown。比較特別的用法是以now表示立即執行shutdown。值得注意的是這部分參數不能省略。


1)定時關機sudo shutdown -h 23:00  //表示在23點定時關機


2)延時關機sudo shutdown +minutes(這個加號不可省略,minutes表示分鐘)比如: sudo shutdown -h +120  //兩小時候關機


3)取消前一個關機命令按“Ctrl+C”鍵或輸入命令:shutdown -c

 


2、編寫腳本文件關機

1)先用編輯器建立一個文件,如guanji.sh

sudo nano guanji.sh輸入如下內容:

#! /bin/sh

shutdown -h 23:00  //表示晚上23點00分關機,並關閉電源。


2)給腳本可執行權限右鍵此文件,選擇屬性->權限,最下方會有一個“允許以程序執行文件”,將這一項勾選,就可以了。

或在命令行下附予權限:

        chmod 777 test.sh或: chmod +x test.sh
3)執行腳本命令或雙擊運行。 #sh guanji.sh

 

二:用的方法是用crontab調用linux的關機命令。
 1.root登陸到linux主機
2.運行crontab -e命令
3.然後點擊"i",對文本框進行編輯
4.將下面內容填入: 0 18 * * * halt -p
意思是每天18:00整定時運行halt -p命令 halt -p命令就是關機的意思。
 5.運行“:wq”進行保存退出
6.運行下面的命令:
/sbin/service crond restart 意思是重啓crond服務。
 7.設置成功
感受:
1.關機命令有很多種
shutdown now這種關機命令不包含關閉電源,所以當你運行之後發現機器的電源還亮着。 init 0這個關機命令很好,而且也包含關閉電源。但是不知道爲什麼,不能在crontab中使用 halt -p現在用的就是這個命令。
2.修改完成crontab之後必須重啓他的服務,我在這個上面花的時間最多,最後終於總結出這條規律。

 
開機自動啓動:
linux自動啓動服務很簡單,最簡單的是把啓動命令放到/etc/rc.d/rc.local文件裏。這樣就可以每次啓動的時候自動啓動服務了。例如對於 apache,編譯好apache後會在安裝目錄的bin下生成apachectl文件,這是個啓動腳本,我們只需要把這個命令加到rc.local裏就可以了:
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local

此外我們還可以使用chkconfig命令來把某項服務加到系統的各項運行級別中,步驟如下:
1 創建啓動腳本,對於apache、mysql、ssh這樣的軟件都是自己帶的,我們只要稍微修改一下使之支持chkconfig就可以了
2 修改腳本
我們需要在腳本的前面加上2行,才能支持chkconfig命令
# chkconfig: 2345 08 92
# description: Automates a packet filtering firewall with ipchains.

chkconfig:後面定義的使啓動服務的運行級別(例子中使2345啓動該服務),以及關閉和啓動服務的順序(上例中啓動服務的順序是8,關閉的順序是92)。
descriptions:對該服務的描述(上例中是ipchains包過濾),你可以換成自己想要的

修改好之後執行
cp 你的腳本 /etc/rc.d/init.d/腳本名
chmod 700 /etc/rc.d/init.d/腳本名
chkconfig --add 腳本名
以後每次重新啓動服務器都會自動啓動和關閉我們的服務了

而且你執行setup之後也可以看到我們添加的服務,選中我們添加的服務按F1鍵還可以看到我們定製的信息。 

chkconfig命令:

  chkconfig命令主要用來更新(啓動或停止)和查詢系統服務的運行級信息。謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。

語法:
    chkconfig --list [name]
    chkconfig --add name
    chkconfig --del name
    chkconfig [--level levels] name <on|off|reset>
    chkconfig [--level levels] name
    chkconfig 沒有參數運行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前運行級啓動。如果是,返回true,否則返回false。如果在服務名後面指定 了on,off或者reset,那麼chkconfi 會改變指定服務的啓動信息。on和off分別指服務被啓動和停止,reset指重置服務的啓動信息,無論有問題的初始化腳本指定了什麼。on和off開 關,系統默認只對運行級3,4,5有效,但是reset可以對所有運行級有效。
    --level選項可以指定要查看的運行級而不一定是當前運行級。
    需要說明的是,對於每個運行級,只能有一個啓動腳本或者停止腳本。當切換運行級時,init不會重新啓動已經啓動的服務,也不會再次去停止已經停止的服務。
    chkconfig --list :顯示所有運行級系統服務的運行狀態信息(on或off)。如果指定了name,那麼只顯示指定的服務在不同運行級的狀態。
    chkconfig --add name:增加一項新的服務。chkconfig確保每個運行級有一項啓動(S)或者殺死(K)入口。如有缺少,則會從缺省的init腳本自動建立。
    chkconfig --del name:刪除服務,並把相關符號連接從/etc/rc[0-6].d刪除。
    chkconfig [--level levels] name <on|off|reset>:設置某一服務在指定的運行級是被啓動,停止還是重置。例如,要在3,4,5運行級停止nfs服務,則命令如下:
    chkconfig --level 345 nfs off
運行級文件:
    每個被chkconfig管理的服務需要在對應的init.d下的腳本加上兩行或者更多行的註釋。第一行告訴chkconfig缺省啓動的運行級以及啓動和停止的優先級。如果某服務缺省不在任何運行級啓動,那麼使用 - 代替運行級。第二行對服務進行描述,可以用\ 跨行註釋。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \

# higher quality random number generation.
此例子表明random服務的缺省啓動運行級在2、3、4、5級,啓動的優先級(順序號)是20,停止的優先級(順序號)是80。

附加介紹一下Linux系統的運行級的概念:

    Linux中有多種運行級,常見的就是多用戶的2,3,4,5 ,很多人知道5是運行X-Windows的級別,而0就是關機了。運行級的改變可以通過init命令來切換。例如,假設你要維護系統進入單用戶狀態,那麼,可以使用init1來切換。在Linux的運行級的切換過程中,系統會自動尋找對應運行級的目錄/etc/rc[0-6].d下的K和S開頭的文件, 按後面的數字順序,執行這些腳本。對這些腳本的維護,是很繁瑣的一件事情,Linux提供了chkconfig命令用來更新和查詢不同運行級上的系統服務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章