十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章給大家分享的是有關(guān)linux下init、systemd的詳細(xì)介紹的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

早期init管理機(jī)制
centOS6的時(shí)候,還是采用init的服務(wù)管理機(jī)制。這里稍微介紹下,因?yàn)橛行〇|西在centOS7中還是可以使用的。主要看下面幾個(gè)特點(diǎn):
服務(wù)的啟動(dòng)、關(guān)閉以及狀態(tài)查看等
啟動(dòng)服務(wù): /etc/init.d/nginx start
重啟服務(wù): /etc/init.d/nginx restart
關(guān)閉服務(wù): /etc/init.d/nginx stop
狀態(tài)查看: /etc/init.d/nginx status
服務(wù)啟動(dòng)方式
獨(dú)立啟動(dòng):大部分的服務(wù)都是采用該模式,比如常見(jiàn)的mysqld、php-fpm、nginx、httpd等服務(wù)。
被super daemon托管啟動(dòng):這些服務(wù)的啟動(dòng)是由另一個(gè)服務(wù)來(lái)托管,托管這些服務(wù)的服務(wù)我們成為super daemon,常見(jiàn)的supuer daemon有inetd、xinetd
執(zhí)行等級(jí)
linux上有7個(gè)執(zhí)行等級(jí),分別是0、1、2、3、4、5、6。常用的有
1單人維護(hù)模式
3純文本模式
5圖形模式
各個(gè)執(zhí)行等級(jí)的啟動(dòng)腳本是通過(guò)/etc/rc[0-6].d/SNNdaemon鏈接到/etc/init.d/daemon。
ll /etc/rc3.d/S55nginx lrwxrwxrwx 1 root root 15 Sep 21 11:30 /etc/rc3.d/S55nginx -> ../init.d/nginx
S表示啟動(dòng)的意思,NN表示的是數(shù)字,這些數(shù)字表明了腳本的執(zhí)行順序,數(shù)字越小越先被執(zhí)行。這個(gè)執(zhí)行順序可以很好的管理服務(wù)的依賴性關(guān)聯(lián)。
開(kāi)機(jī)自啟服務(wù)
開(kāi)機(jī)自啟動(dòng):chkconfig on deamon
關(guān)閉開(kāi)啟自啟動(dòng):chkconfig off deamon
查看服務(wù)是否已啟動(dòng):chkconfig --list daemon
systemd管理機(jī)制
自centos7以后,就棄用了之前的init管理機(jī)制,改用了systemd。下面我們來(lái)看看systemd管理有什么不一樣的吧。
平行處理所有服務(wù),加快開(kāi)機(jī)流程。
和init一項(xiàng)一項(xiàng)去啟動(dòng)服務(wù)不同的是,systemd可以同時(shí)啟動(dòng)許多服務(wù)。所以,這樣會(huì)大大加快開(kāi)機(jī)等待時(shí)機(jī)。
解決服務(wù)相關(guān)性依賴
比如說(shuō)要啟動(dòng)B服務(wù)必須要先啟動(dòng)A服務(wù),這個(gè)時(shí)候,用systemd去啟動(dòng)B服務(wù),它會(huì)自動(dòng)檢查依賴性,然后在啟動(dòng)B服務(wù)前先啟動(dòng)A服務(wù)。
unit類型
和init只有兩種啟動(dòng)方式的stand alone、super daemon相比,systemd定義了一個(gè)統(tǒng)一的服務(wù)單位(unit),unit又分為:service, socket, target, path, snapshot, timer等多種類型。
向下兼容init的服務(wù)腳本
舊的/etc/inid.d/下面服務(wù)啟動(dòng)腳本,也是可以通過(guò)systemd去管理的。注意:若以手動(dòng)方式啟動(dòng)/etc/init.d目錄下的服務(wù)啟動(dòng)腳本,那么systemd是不能檢測(cè)到該服務(wù)的運(yùn)行狀況的。
# systemctl status mysqld ● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (running) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago …… # /etc/init.d/mysqld restart Shutting down MySQL.... [ OK ] Starting MySQL. [ OK ] [root@lijia ~]# systemctl status mysqld ● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (exited) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago ……
關(guān)于init與systemd,我們需要重點(diǎn)掌握systemd,對(duì)于init也是需要去了解的。
感謝各位的閱讀!關(guān)于linux下init、systemd的詳細(xì)介紹就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!