- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
一、關(guān)于目錄 /etc/init.d/
/etc/init.d/ 這個目錄到底是干嘛的呢?
目錄 /etc/init.d/ 中包含許多系統(tǒng)服務(wù)的啟動和停止腳本。它控制著所有從 acpid 到 x11-common 的各種事務(wù)。當(dāng)然,/etc/init.d/ 遠遠沒有這么簡單。
(譯者注:acpid 是 Linux 操作系統(tǒng)新型電源管理標(biāo)準(zhǔn) ;X11 也叫做 X Window 系統(tǒng),X Window 系統(tǒng) (X11 或 X)是一種位圖顯示的視窗系統(tǒng)。它是在 Unix 和類 Unix 操作系統(tǒng)以及 OpenVMS 上建立圖形用戶界面的標(biāo)準(zhǔn)工具包和協(xié)議,并可用于幾乎已有的現(xiàn)代操作系統(tǒng))。
當(dāng)你查看 /etc 目錄時,你會發(fā)現(xiàn)許多 rc#.d 形式存在的目錄(這里#代表一個指定的初始化級別,范圍是0~6)。在這些目錄之下,包含了許多對進程進行控制的腳本。這些腳本要么以“K”開頭,要么以“S”開頭。以“K”開頭的腳本運行在以“S”開頭的腳本之前。這些腳本放置的地方,將決定這些腳本什么時候開始運行。有時候你希望能在不使用 kill 或 killall 命令的情況下,能干凈的啟動或殺死一個進程。這就是 /etc/init.d/ 能夠派上用場的地方了!
如果你在使用 Fedora 系統(tǒng),你可以找到這個目錄:/etc/rc.d/init.d。實際上無論 init.d/ 放在什么地方,它都發(fā)揮著相同的作用。
為了能夠使用init.d目錄下的腳本,你需要有 root 權(quán)限。每個腳本都將被作為一個命令運行,該命令的結(jié)構(gòu)大致如下所示:
/etc/init.d/command 選項
command 是實際運行的命令,選項可以有如下幾種:
start stop reload restart force-reload
大多數(shù)的情況下,你會使用 start,stop,restart 選項。例如,如果你想關(guān)閉網(wǎng)絡(luò),你可以使用如下形式的命令:
/etc/init.d/networking stop
又比如,你改變了網(wǎng)絡(luò)設(shè)置,并且需要重啟網(wǎng)絡(luò)。你可以使用如下命令:
/etc/init.d/networking restart
目錄 /etc/init.d/ 下常用初始化腳本有:
networking samba apache2 ftpd sshd dovecot mysql
當(dāng)然,你可能有更多常用的腳本,這個取決于你安裝了什么 Linux 操作系統(tǒng)。
其實目錄 /etc/init.d 是符號鏈接文件,實際上是鏈接到目錄 /etc/rc.d/init.d,你可以通過以下命令驗證:
[root@localhost ~]# ll /etc/init.d lrwxrwxrwx. 1 root root 11 5月 11 2019 /etc/init.d -> rc.d/init.d
or
[root@localhost ~]# ls -ld /etc/init.d lrwxrwxrwx. 1 root root 11 5月 11 2019 /etc/init.d -> rc.d/init.d
[root@localhost ~]# ln -s /etc/rc.d/init.d /etc/init.d
二、關(guān)于目錄 /etc/rc.d/init.d/
大多數(shù)的 Linux 發(fā)行版本中,啟動的是目錄 /etc/rc.d/init.d/ 下的服務(wù),這個目錄下存放都是實際的服務(wù)腳本文件。
Linux 的每個運行級別,在 /etc/rc.d/ 下都有一個子目錄分別是 rc0.d,rc1.d …… rc6.d,其實這些 rcN.d/ 目錄下存放的都是鏈接到目錄 /etc/rc.d/init.d/ 下部分腳本鏈接文件。每個級別要執(zhí)行的服務(wù)就在相對應(yīng)的目錄下,比如級別 5 要啟動的服務(wù)就都放在 rc5.d/ 下,但是放在這個 rc5.d/ 下的都是一些鏈接文件,鏈接到 /etc/rc.d/init.d/ 中相對應(yīng)的實際腳本文件。
例如,目錄 /etc/rc.d/rc2.d/ 下的 S10network 鏈接文件,實際是鏈接到目錄 /etc/rc.d/init.d/ 下的腳本文件 network。
/etc/rc.d/rc2.d/ 下面的文件就是和運行級 2 有關(guān)的。文件開頭的 S 代表 start 就是啟動服務(wù)的意思,后面的數(shù)字 10 就是啟動的順序。例如,在同一個目錄下,你還可以看到 S80postfix 這個文件,80 就是順序在 10 以后,因為沒有啟動網(wǎng)絡(luò)的情況下,啟動 postfix 是沒有任何作用的。
三、關(guān)于文件 /etc/rc.local
/etc/rc.local 也是我經(jīng)常使用的一個腳本。該腳本是在系統(tǒng)初始化級別的腳本運行之后再執(zhí)行的,因此可以安全地在里面添加你想在系統(tǒng)啟動之后執(zhí)行的腳本。常見的情況是你可以在里面添加 NFS 掛載 /mount 腳本。此外,你也可以在里面添加一些調(diào)試用的腳本命令。例如,我就碰到過這種情況:samba 服務(wù)總是無法正常運行,而檢查發(fā)現(xiàn),samba 是在系統(tǒng)啟動過程中就該啟動執(zhí)行的,也就是說 samba守護程序配置保證了這種功能本應(yīng)該正確執(zhí)行。碰到這種類似情況,一般我也懶得花大量時間去查為什么,我只需要簡單的在 /etc/rc.local 腳本里加上這么一行:/etc/init.d/samba start,這樣就成功的解決了samba 服務(wù)異常的問題。
四、/etc/init.d/ 和 service 文件
service 文件是使用 systemd 作為初始化程序的 Linux 系統(tǒng)才有的服務(wù)文件,叫“服務(wù)配置單元文件”,用來取代舊初始化系統(tǒng)中的腳本文件,但是他們可能會同時存在系統(tǒng)中。
如果同時存在的話,在目錄 /etc/init.d/ 下的腳本文件的優(yōu)先級會高于目錄 /etc/systemd/system/ 下的 service 文件。
五、關(guān)于命令 service
service xxxx start|stop|restart 相當(dāng)于是對 /etc/init.d/ 下的 xxxx 的封裝,相當(dāng)于是一個管理命令,實際執(zhí)行的是 /etc/init.d/下的可執(zhí)行程序。如果 /etc/init.d/下沒有該服務(wù)的可執(zhí)行程序,則會查找對應(yīng)的 service 文件
六、關(guān)于文件 /etc/inittab
這是 init 程序的配置文件,系統(tǒng)的運行級別就是在 /etc/inittab 文件里指定,所謂“運行級”就是操作系統(tǒng)當(dāng)前正在運行的功能級別。這個級別從1 到6 ,具有不同的功能。
七、關(guān)于目錄 /etc/init/
/etc/init/ 包含的是 Upstart(SysV init的替代版本)的配置文件,和 /etc/init.d/ 的作用幾乎差不多。這樣似乎 /etc/init/ 可以看作 /etc/init.d/ 的演化版本。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP