在啟動(dòng) Linux 系統(tǒng)并登錄的過程中到底發(fā)生了什么事情。按下開機(jī)鍵或啟動(dòng)一個(gè)虛擬機(jī),你就啟動(dòng)了一系列事件,之后會(huì)進(jìn)入到一個(gè)功能完備的系統(tǒng)中,有時(shí),這個(gè)過程不到一分鐘。當(dāng)你注銷或者關(guān)機(jī)時(shí),也是這樣。
更有意思的是,在系統(tǒng)啟動(dòng)以及用戶登錄或注銷時(shí),還可以讓系統(tǒng)執(zhí)行特定的操作。
本文,我們將探討一下在 Linux 操作系統(tǒng)中實(shí)現(xiàn)這些目標(biāo)的傳統(tǒng)方法。
注意:我們假定使用的是 Bash 作為登錄及注銷的主 Shell。如果你使用的是其他 Shell,那么有些方法可能會(huì)無(wú)效。如果有其他的疑問,請(qǐng)參考對(duì)應(yīng)的 Shell 文檔。
在啟動(dòng)時(shí)執(zhí)行 Linux 腳本
有兩種傳統(tǒng)的方法可以實(shí)現(xiàn)在啟動(dòng)時(shí)執(zhí)行命令或腳本:
方法 #1 - 使用 cron 任務(wù)
除了常用格式(分 / 時(shí) / 日 / 月 / 周)外,cron 調(diào)度器還支持 @reboot 指令。這個(gè)指令后面的參數(shù)是腳本(啟動(dòng)時(shí)要執(zhí)行的那個(gè)腳本)的絕對(duì)路徑。
然而,這種方法需要注意兩點(diǎn):
a) cron 守護(hù)進(jìn)程必須處于運(yùn)行狀態(tài)(通常情況下都會(huì)運(yùn)行),同時(shí)
b) 腳本或 crontab 文件必須包含需要的環(huán)境變量(如果有的話,參考 StackOverflow 獲取更多詳細(xì)內(nèi)容)。
方法 #2 - 使用 /etc/rc.d/rc.local
這個(gè)方法對(duì)于 systemd-based 發(fā)行版 Linux 同樣有效。不過,使用這個(gè)方法,需要授予 /etc/rc.d/rc.local 文件執(zhí)行權(quán)限:
在登錄或注銷時(shí)執(zhí)行 Linux 腳本
要在登錄或注銷時(shí)執(zhí)行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數(shù)情況下,后者需要手動(dòng)創(chuàng)建。在每個(gè)文件的底部,添加調(diào)用腳本代碼,如前面例中所示,就可以實(shí)現(xiàn)這個(gè)功能。
總結(jié)
本文主要介紹如何在啟動(dòng)、登錄以及注銷系統(tǒng)時(shí)執(zhí)行腳本。如果你有其他的方法可以補(bǔ)充,請(qǐng)使用下面的評(píng)論給我們指出,我們期待您的回應(yīng)!
-
Linux
+關(guān)注
關(guān)注
87文章
11342瀏覽量
210146
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論