好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解linux中systemd命令的運行級別與其常見應用

詳解linux中systemd命令的運行級別與其常見應用

熱門標簽:廳外呼梯系統布線 淘寶系統退貨外呼項目考試答案 貴陽語音電銷機器人招商 百度地圖標注陰影動態 2020電銷機器人排行 焦作人工智能電話機器人軟件 鹽城客服外呼系統軟件 鄭州營銷外呼系統運營商 北京市地圖標注

從很久很久以前我們就在使用靜態運行級別。而systemd提供了更為動態靈活的機制,來管控你的系統。

在開始介紹systemd命令前,讓我們先簡單的回顧一下歷史。在Linux世界里,有一個很奇怪的現象,一方面Linux和自由軟件(FOSS)在不斷的向前推進,另一方面人們對這些變化卻不斷的抱怨。這就是為什么我要在此稍稍提及那些反對systemd所引起的爭論的原因,因為我依然記得歷史上有不少類似的爭論:

  •     軟件包(Pacakge)是邪惡的,因為真正的Linux用戶會從源碼構建他所想要的的一切,并嚴格的管理系統中安裝的軟件。
        解析依賴關系的包管理器是邪惡的,真正的Linux用戶會手動解決這些該死的依賴關系。
        apt-get總能把事情干好,所以只有Yum是邪惡的。
        Red Hat簡直就是Linux中的微軟。
     

諸如此類...就像我之前常常說的一樣,變化總是讓人沮喪。這些該死的變化攪亂了我的工作流程,這可不是一件小事情,任何業務流程的中斷,都會直接影響到生產力。但是,我們現在還處于計算機發展的嬰兒期,在未來的很長的一段時間內將會持續有快速的變化和發展。想必大家應該都認識一些因循守舊的人,在他們的心里,商品一旦買回家以后就是恒久不變的,就像是買了一把扳手、一套家具或是一個粉紅色的火烈鳥草坪裝飾品。就是這些人,仍然在堅持使用Windows Vista,甚至還有人在使用運行Windows 95的老破爛機器和CRT顯示器。他們不能理解為什么要去換一臺新機器。老的還能用啊,不是么?

這讓我回憶起了我在維護老電腦上的一項偉大的成就,那臺破電腦真的早就該淘汰掉。從前我有個朋友有一臺286的老機器,安裝了一個極其老的MS-DOS版本。她使用這臺電腦來處理一些簡單的任務,比如說約會、日記、記賬等,我還用BASIC給她寫了一個簡單的記賬軟件。她不用關注任何安全更新,是這樣么?因為它壓根都沒有聯網。所以我會時不時給她維修一下電腦,更換電阻、電容、電源或者是CMOS電池什么的。它竟然還一直能用。它那袖珍的琥珀CRT顯示器變得越來越暗,在使用了20多年后,終于退出了歷史舞臺。現在我的這位朋友,換了一臺運行Linux的老Thinkpad,來干同樣的活。

前面的話題有點偏題了,下面抓緊時間開始介紹systemd。
運行級別 vs. 狀態

SysVInit使用靜態的運行級別來構建不同的啟動狀態,大部分發布版本中提供了以下5個運行級別:

  •     單用戶模式(Single-user mode)
        多用戶模式,不啟動網絡服務(Multi-user mode without network services started)
        多用戶模式,啟動網絡服務(Multi-user mode with network services started)
        系統關機(System shutdown)
        系統重啟(System reboot)

對于我來說,使用多個運行級別并沒有太大的好處,但它們卻一直在系統中存在著。 不同于運行級別,systemd可以創建不同的狀態,狀態提供了靈活的機制來設置啟動時的配置項。這些狀態是由多個unit文件組成的,狀態又叫做啟動目標(target)。啟動目標有一個清晰的描述性命名,而不是像運行級別那樣使用數字。unit文件可以控制服務、設備、套接字和掛載點。參考下/usr/lib/systemd/system/graphical.target,這是CentOS 7默認的啟動目標:

   

復制代碼
代碼如下:
[Unit]
Description=Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target
Wants=display-manager.service
AllowIsolate=yes
[Install]
Alias=default.target

現在再看看unit文件長什么樣? 我來給大家找個例子。 unit文件存放在下面的兩個目錄下:

   

復制代碼
代碼如下:
/etc/systemd/system/
/usr/lib/systemd/system/

我們可以修改第一個目錄中的文件來進行自定義配置,而第二個目錄中的文件是包安裝時保存的備份。/etc/systemd/system/的優先級高于/usr/lib/systemd/system/。不錯,用戶優先級高于機器。下面是Apache Web server的unit文件:

   

復制代碼
代碼如下:
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd/ $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi.user.target

就算是對于新手而言,上面的文件也是非常簡單易懂的。這可比SysVInit的init文件要簡單多了,為了便于比較,下面截取了/etc/init.d/apache2的一個片段:

   

復制代碼
代碼如下:
SCRIPTNAME="${0##*/}"
SCRIPTNAME="${SCRIPTNAME##[KS][0-9][0-9]}"
if [ -n "$APACHE_CONFDIR" ] ; then
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
DIR_SUFFIX="${APACHE_CONFDIR##/etc/apache2-}"
else
DIR_SUFFIX=

整個文件一共有410行。

你可以檢查unit文件的依賴關系,我常常被這些復雜的依賴關系給嚇到:

   

復制代碼
代碼如下:
$ systemctl list-dependencies httpd.service

cgroups

cgroups,或者叫控制組,在Linux內核里已經出現好幾年了,但直到systemd的出現才被真正使用起來。The kernel documentation中是這樣描述cgroups的:“控制組提供層次化的機制來管理任務組,使用它可以聚合和拆分任務組,并管理任務組后續產生的子任務。”換句話說,它提供了多種有效的方式來控制、限制和分配資源。systemd使用了cgroups,你可以便捷的查看它,使用下面的命令可以展示你系統中的整個cgroup樹:

   

復制代碼
代碼如下:
$ systemd-cgls

你可以使用ps命令來進行查看cgroup樹:

   

復制代碼
代碼如下:
$ ps xawf -eo pid,user,cgroup,args

常用命令集

下面的命令行展示了如何為守護進程重新裝載配置文件,注意不是systemd服務文件。 使用這個命令能夠激活新的配置項,且盡可能少的打斷業務進程,下面以Apache為例:

   

復制代碼
代碼如下:
# systemctl reload httpd.service

重新裝載服務文件(service file)需要完全停止和重新啟動服務。如果服務掛死了,用下面的命令行可以恢復它:

   

復制代碼
代碼如下:
# systemctl restart httpd.service

你還可以用一個命令重啟所有的守護進程。這個命令會重新裝載所有守護進程的unit文件,然后重新生成依賴關系樹:

   

復制代碼
代碼如下:
# systemctl daemon-reload

在非特權模式下,你也可以進行重啟、掛起、關機操作:

   

復制代碼
代碼如下:
$ systemctl reboot
$ systemctl suspend
$ systemctl poweroff

標簽:樂山 青島 大理 大興安嶺 周口 大慶 遼寧 六安

巨人網絡通訊聲明:本文標題《詳解linux中systemd命令的運行級別與其常見應用》,本文關鍵詞  詳解,linux,中,systemd,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解linux中systemd命令的運行級別與其常見應用》相關的同類信息!
  • 本頁收集關于詳解linux中systemd命令的運行級別與其常見應用的相關信息資訊供網民參考!
  • 推薦文章