詳解如何在 Linux 啟動時自動執(zhí)行命令或腳本
我一直很好奇,在啟動 Linux 系統(tǒng)并登錄的過程中到底發(fā)生了什么事情。按下開機(jī)鍵或啟動一個虛擬機(jī),你就啟動了一系列事件,之后會進(jìn)入到一個功能完備的系統(tǒng)中,有時,這個過程不到一分鐘。當(dāng)你注銷或者關(guān)機(jī)時,也是這樣。
更有意思的是,在系統(tǒng)啟動以及用戶登錄或注銷時,還可以讓系統(tǒng)執(zhí)行特定的操作。
本文,我們將探討一下在 Linux 操作系統(tǒng)中實(shí)現(xiàn)這些目標(biāo)的傳統(tǒng)方法。
注意:我們假定使用的是 Bash 作為登錄及注銷的主 Shell。如果你使用的是其他 Shell,那么有些方法可能會無效。如果有其他的疑問,請參考對應(yīng)的 Shell 文檔。
在啟動時執(zhí)行 Linux 腳本
有兩種傳統(tǒng)的方法可以實(shí)現(xiàn)在啟動時執(zhí)行命令或腳本:
方法 #1 - 使用 cron 任務(wù)
除了常用格式(分 / 時 / 日 / 月 / 周)外,cron 調(diào)度器還支持 @reboot 指令。這個指令后面的參數(shù)是腳本(啟動時要執(zhí)行的那個腳本)的絕對路徑。
然而,這種方法需要注意兩點(diǎn):
a) cron 守護(hù)進(jìn)程必須處于運(yùn)行狀態(tài)(通常情況下都會運(yùn)行),同時
b) 腳本或 crontab 文件必須包含需要的環(huán)境變量(如果有的話,參考 StackOverflow 獲取更多詳細(xì)內(nèi)容)。
方法 #2 - 使用 /etc/rc.d/rc.local
這個方法對于 systemd-based 發(fā)行版 Linux 同樣有效。不過,使用這個方法,需要授予 /etc/rc.d/rc.local 文件執(zhí)行權(quán)限:
# chmod +x /etc/rc.d/rc.local
然后在這個文件底部添加腳本。
下圖說明如何分別使用 cron 任務(wù)和 rc.local 運(yùn)行兩個示例腳本(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。
script1.sh:
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

*啟動時執(zhí)行 Linux 腳本 *
記住,一定要提前給兩個示例腳本授予執(zhí)行權(quán)限:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
在登錄或注銷時執(zhí)行 Linux 腳本
要在登錄或注銷時執(zhí)行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數(shù)情況下,后者需要手動創(chuàng)建。在每個文件的底部,添加調(diào)用腳本代碼,如前面例中所示,就可以實(shí)現(xiàn)這個功能。
總結(jié)
本文主要介紹如何在啟動、登錄以及注銷系統(tǒng)時執(zhí)行腳本。如果你有其他的方法可以補(bǔ)充,請使用下面的評論表給我們指出,我們期待您的回應(yīng)!也希望大家多多支持腳本之家。
相關(guān)文章
LNMP下FTP服務(wù)器的安裝與使用方法(Pureftpd和Proftpd)
FTP是網(wǎng)站文件維護(hù)中使用比較多的,目前LNMP一鍵安裝包中有Pureftpd和Proftpd服務(wù)器安裝腳本2013-06-06
Apache服務(wù)器關(guān)閉TRACE Method請求方式的方法
這篇文章主要介紹了Apache服務(wù)器關(guān)閉TRACE Method請求方式的方法,因為支持該方式的服務(wù)器存在跨站腳本漏洞,需要的朋友可以參考下2014-06-06
Linux刪文件力度過大導(dǎo)致IO占用太高的解決方案
這篇文章主要介紹了Linux刪文件力度過大導(dǎo)致IO占用太高的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
Linux系統(tǒng)目錄大小通過du命令獲取實(shí)例
在本篇文章里小編給大家整理的是一篇關(guān)于Linux系統(tǒng)目錄大小通過du命令獲取實(shí)例內(nèi)容,需要的朋友們可以參考學(xué)習(xí)下。2020-11-11
在Linux中刪除超大(100-200GB)文件的實(shí)現(xiàn)方式
這篇文章主要介紹了在Linux中刪除超大(100-200GB)文件的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04

