我一直很好奇,在啟動 linux 系統並登入的過程中到底發生了什麼事情。按下開機鍵或啟動乙個虛擬機器,你就啟動了一系列事件,之後會進入到乙個功能完備的系統中,有時,這個過程不到一分鐘。當你登出或者關機時,也是這樣。
更有意思的是,在系統啟動以及使用者登入或登出時,還可以讓系統執行特定的操作。
本文,我們將**一下在 linux 作業系統中實現這些目標的傳統方法。
在啟動時執行 linux 指令碼
有兩種傳統的方法可以實現在啟動時執行命令或指令碼:
方法 #1 - 使用 cron 任務
除了常用格式(分 / 時 / 日 / 月 / 周)外,cron 排程器還支援 @reboot 指令。這個指令後面的引數是指令碼(啟動時要執行的那個指令碼)的絕對路徑。
然而,這種方法需要注意兩點:
a) cron 守護程序必須處於執行狀態(通常情況下都會執行),同時
方法 #2 - 使用 /etc/rc.d/rc.local
這個方法對於 systemd-based 發行版 linux 同樣有效。不過,使用這個方法,需要授予 /etc/rc.d/rc.local 檔案執行許可權:
# chmod +x /etc/rc.d/rc.local然後在這個檔案底部新增指令碼。
下圖說明如何分別使用 cron 任務和 rc.local 執行兩個示例指令碼(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。
script1.sh:
#!/bin/bashscript2.sh:date=$(date +'%f %h:%m:%s')
dir=/home/gacanepa
echo "current date and time: $date" > $dir/file1.txt
#!/bin/bashsite="tecmint.com"
dir=/home/gacanepa
echo "$site rocks... add us to your bookmarks." > $dir/file2.txt
*啟動時執行 linux 指令碼 *
記住,一定要提前給兩個示例指令碼授予執行許可權:
$ chmod +x /home/gacanepa/script1.sh在登入或登出時執行 linux 指令碼$ chmod +x /home/gacanepa/script2.sh
要在登入或登出時執行指令碼,分別需要使用 ~.bash_profile 和 ~.bash_logout 檔案。多數情況下,後者需要手動建立。在每個檔案的底部,新增呼叫指令碼**,如前面例中所示,就可以實現這個功能。
Linux如何在系統啟動時自動載入模組
下面是以前學習linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的 rc.sysinit中有這樣的一段 load other user defined modules for file in etc sysconfig modules modules ...
Linux如何在系統啟動時自動載入模組
下面是以前學習linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的 rc.sysinit中有這樣的一段 load other user defined modules for file in etc sysconfig modules modules ...
Linux如何在系統啟動時自動載入模組
size medium 下面是以前學習linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的 rc.sysinit中有這樣的一段 load other user defined modules for file in etc sysconfig modu...