在啟動(dòng) Linux 系統(tǒng)并登錄的過(guò)程中到底發(fā)生了什么事情。按下開(kāi)機(jī)鍵或啟動(dòng)一個(gè)虛擬機(jī),你就啟動(dòng)了一系列事件,之后會(huì)進(jìn)入到一個(gè)功能完備的系統(tǒng)中,有時(shí),這個(gè)過(guò)程不到一分鐘。當(dāng)你注銷(xiāo)或者關(guān)機(jī)時(shí),也是這樣。
更有意思的是,在系統(tǒng)啟動(dòng)以及用戶(hù)登錄或注銷(xiāo)時(shí),還可以讓系統(tǒng)執(zhí)行特定的操作。
本文,我們將探討一下在 Linux 操作系統(tǒng)中實(shí)現(xiàn)這些目標(biāo)的傳統(tǒng)方法。
注意:我們假定使用的是 Bash 作為登錄及注銷(xiāo)的主 Shell。如果你使用的是其他 Shell,那么有些方法可能會(huì)無(wú)效。如果有其他的疑問(wèn),請(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)境變量(如果有的話(huà),參考 StackOverflow 獲取更多詳細(xì)內(nèi)容)。
方法 #2 - 使用 /etc/rc.d/rc.local
這個(gè)方法對(duì)于 systemd-based 發(fā)行版 Linux 同樣有效。不過(guò),使用這個(gè)方法,需要授予 /etc/rc.d/rc.local 文件執(zhí)行權(quán)限:
在登錄或注銷(xiāo)時(shí)執(zhí)行 Linux 腳本
要在登錄或注銷(xiāo)時(shí)執(zhí)行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數(shù)情況下,后者需要手動(dòng)創(chuàng)建。在每個(gè)文件的底部,添加調(diào)用腳本代碼,如前面例中所示,就可以實(shí)現(xiàn)這個(gè)功能。
總結(jié)
本文主要介紹如何在啟動(dòng)、登錄以及注銷(xiāo)系統(tǒng)時(shí)執(zhí)行腳本。如果你有其他的方法可以補(bǔ)充,請(qǐng)使用下面的評(píng)論給我們指出,我們期待您的回應(yīng)!
-
Linux
+關(guān)注
關(guān)注
88文章
11761瀏覽量
219055
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密之四-啟動(dòng)腳本
Linux中執(zhí)行shell腳本的兩種方式
通過(guò)JTAG啟動(dòng)Linux的方法和腳本
討論Linux系統(tǒng)中設(shè)置開(kāi)機(jī)自動(dòng)運(yùn)行的兩種方法
請(qǐng)問(wèn)Java如何執(zhí)行cmd命令、bat腳本、linux命令,shell腳本?
請(qǐng)問(wèn)如何在代碼里執(zhí)行命令行啊?
CAD中如何快速重復(fù)執(zhí)行命令?
Linux中命令鏈接操作符的實(shí)際應(yīng)用
英創(chuàng)信息技術(shù)Linux腳本啟動(dòng)應(yīng)用程序方法簡(jiǎn)介
為什么shell腳本中執(zhí)行命令要加exec?這個(gè)exec有什么作用呢?
在Linux啟動(dòng)時(shí)自動(dòng)執(zhí)行命令或腳本的方法
評(píng)論