歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux啟動關機問題

linux啟動關機問題

日期:2017/3/3 12:47:04   编辑:Linux技術
1.前言
用慣了windows圖形化界面的朋友們可能覺得計算機的開啟與啟動時一個簡單的問題,只需要在圖形化界面上點擊關機或直接按電源按鈕開機。你也許沒有注意到linux與windows本質區別其實是在是否支持多用戶。從根本上講,windows(對於非NT(New Technology)主機系統)其實只支持單用戶,即同時只允許一個用戶登錄系統。而linux不同,在一台linux主機上可能同時登陸著多個用戶,這些用戶包括遠程用戶和本機用戶。如果你突然關閉計算機,那麼可能造成其他用戶工作進度丟失的問題。從服務器的角度來講(linux的主要應用還是用在服務器),在你看不到的遠端可能有很多人在使用你的主機工作,浏覽網頁,發送郵件,傳輸文件等,如果你此時直接關閉計算機,會對其他人的工作造成影響。此外,如果系統不能正常關機,可能造成未見系統的損壞。所以合理的安排linux的關機是一件十分重要的事情。
2.多用戶
這裡我們再看一下多用戶的概念。
百度百科上的解釋:
根據在同一時間使用計算機用戶的多少,操作系統可分為單用戶操作系統和多用戶操作系統。單用戶操作系統是指一台計算機在同一時間只能由一個用戶使用,一個用戶獨自享用系統的全部硬件和軟件資源,而如果在同一時間允許多個用戶同時使用計算機,則稱為多用戶操作系統。相關鏈接
另外,本人一直有一個疑問:在linux下同一個用戶ID可以在不同的終端同時登陸,這是為什麼? 例如:我在vmware中開啟centos使用圖形化界面登陸後,再使用secureCRT連續使用同一ID登陸兩次,再使用tty2使用同一ID登陸一次,使用w命令查詢當前登錄的用戶:

發現當前有多個用戶同時使用同一個ID登陸在系統中。所以,有以下猜測:linux多用戶實際上不是指的不同的用戶ID同時登陸系統,而是指即使多個使用同一ID同時多次登陸,這些用戶也能同時在線。這是本人對多用戶的理解,可能有不對的地方,希望大家能指出。
3.啟動linux時的運行級別
在linux下的系統運作模式有七個運行等級(run level):
運行級別0:系統停機狀態(即關機),系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS網絡文件系統)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制台,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動
其中級別3 和級別5是正常狀態下常用的運行等級。以本人的centos為例,默認情況下centos7是未安裝圖形化界面的,所以系統開機啟動後默認以級別3純文本模式運行。在安裝了GNU的圖形化界面後,再次開機發現系統直接進入了圖形化界面,說明運行級別自動切換到了5.
那麼如何修改linux默認的運行級別呢?
在網上查找資料得知:
系統運行級別的配置文件放在了/etc/inittab文件中
在centos7中使用vi打開該文件卻得到如下結果:

文件中全部是注釋(以#開頭),開頭兩句英文大致含義是:
inittab文件已經不再在系統中使用,修改這裡的配置將不會對你的系統產生作用。
於是,我進入到ubuntu下看看是否有相同的結果:

發現根本就不存在inittab這個文件,使用ls命令查找也沒有找到。說明inittab可能是用在一些比較老的版本,在最新的linux版本中已經棄用。那我們只有接著來看centos7中給的提示。
系統通過target來代替運行級別,默認情況下有兩個主要的target:
多用戶target:對應級別3
圖形target:對應級別5
查看默認級別運行:
systemctl get-default
運行結果如下:

說明默認情況下的確是級別5.
接著往下看,設置默認級別運行:
systemctl set-default TARGET.target
我們嘗試使用級別3,再查看運行級別:

可以看到運行級別已經改為3.重啟centos,發現的確是從純文本界面啟動的。

好了,關於linux的啟動級別問題就說到這裡。聲明一下,不同的distribution的配置可能不同。可根據幫助文檔一步一步的配置。
4.關機注意事項
前面提到,linux關機可能會給很多用戶帶來不便,那我們如何合理的關機呢?
從鳥哥的書上了解到以下幾點:
查看系統的使用狀態:使用who(或w)命令查看當前有哪些用戶在線,使用netstat -a命令查看網絡的聯機狀態,使用ps -aux 查看後台執行的程序。還有很多其他需要關注的地方,比如這台機器是否作為服務器在運行,如果是,是否需要停止某些網絡服務,是否需要通知用戶服務器的關機時間等。
通知在線用戶關機的時刻,以便用戶保存當前工作數據。
將數據同步寫入硬盤,使用命令sync,在關機之前保存數據。
正確使用關機命令.關於關機命令,常用的有shutdown,init 0,halt,poweroff,重啟命令有reboot。(以上命令都需要有root權限)本人習慣用init 0.下面具體來看這些命令的用法。
1)shutdown命令
最直接的方法使用man命令查看幫助文檔。

這是一個可以停機、關機或重啟的命令。
參數用法如下:
語  法:shutdown [-efFhHkpnr][-t 秒數][時間][警告信息]
-c  當執行”shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令。
 -f  重新啟動時不執行fsck。
 -F  重新啟動時執行fsck。
 -h  將系統關機。
-H 停機
-p 關機(默認情況)
 -k  只是送出信息給所有用戶,但不會實際關機。
 -n  不調用init程序進行關機,而由shutdown自己進行。
 -r  shutdown之後重新啟動。
 -t<秒數>  送出警告信息和刪除信息之間要延遲多少秒。
 [時間]  設置多久時間後執行shutdown指令。可以使用00:00格式,也使用+number設置成多少分鐘後關機
 [警告信息]  要傳送給所有登入用戶的信息,消息用‘message’包含。
 演示:
 

 2)重啟關機(reboot、halt、poweroff):
 這三個命令調用的是相似的函數庫,使用man查詢其中一個即可了解其他兩個。
 

 今天就先到這裡了。linux的啟動關機還有好多內容,水平有限,以後學到更多了再來分享。
Copyright © Linux教程網 All Rights Reserved