手把手教你從安裝CentOS7.4鏡像開始,搭建IoT視頻監控系統( 三 )

訪問文件測試: http://127.0.0.1:8090
三、Linux下開機啟動的執行流程3.1 開機執行腳本順序第一步:init /etc/inittab第二步:啟動相應的腳本,并且打開終端rc.sysinitrc.d(里面的腳本)rc.local第三步:啟動login登錄界面 login第四步:在用戶登錄的時候執行sh腳本的順序,每次登錄的時候都會完全執行的/etc/profile.d/file/etc/profile/etc/bashrc/root/.bashrc/root/.bash_profile3.2 Linux中修改環境變量及生效方法修改/etc/profile 或者 /etc/bashrc 可以讓環境變量全部用戶全局生效(需要重啟系統) 。修改~/.bash_profile 或~/.bashrc對當前用戶全局有效(需要重啟系統) 。
如果需要立即生效,修改完之后用source命令執行 , 如:source .bash_profile
3.3 rcX.d的啟動級別一般有開機自啟動的需求時,一般會在/etc/rc.local文件中寫命令行或腳本執行命令的方式來實現 。也可以在/etc/profile文件里實現(不建議) 。
現在很多Linux發行版,默認是沒有/etc/rc.local這個文件或者沒有去執行,而使用的是/etc/rcX.d 。
rcX.d并不是指這個目錄或者文件就是叫rcX.d , 這其中的X對應是0~6這7個數字,不同的數字對應著不同的級別
查看當前系統/etc/rcX.d目錄:
[root@ecs-c687-ecrs work]# ls /etc/ | grep rcbashrccsh.cshrcinputrcmail.rcrc0.drc1.drc2.drc3.drc4.drc5.drc6.drc.drc.localvimrcvircwgetrc通過runlevel命令查看當前系統的啟動級別:

手把手教你從安裝CentOS7.4鏡像開始,搭建IoT視頻監控系統

文章插圖
我當前使用的是CentOS7.4服務器版本,啟動級別如下:
[root@ecs-c687-ecrs ]# runlevelN 3查看/etc/rc3.d/目錄下文件的詳細信息:
[root@ecs-c687-ecrs ~]# ls /etc/rc3.d/ -ltotal 0lrwxrwxrwx. 1 root root 20 Feb 14 2022 K50netconsole -> ../init.d/netconsolelrwxrwxrwx. 1 root root 17 Feb 14 2022 K90network -> ../init.d/networklrwxrwxrwx 1 root root 19 Sep 15 22:07 S12hostguard -> ../init.d/hostguardlrwxrwxrwx 1 root root 24 Feb 14 2022 S50multi-queue-hw -> ../init.d/multi-queue-hw可以看到該目錄下的文件都是鏈接文件,而且都是指向/etc/init.d中的shell腳本或者其他可執行文件 , 它們的命名方式基本都是以S或者K開頭,其后緊跟一個數字,數字后則是鏈接文件的名字,這個名字可以自行定義 。
命名規則解釋如下:
以K90network為例:K表示stop,S表示start 。(表示需要傳入參數) , 也就是說開機自啟動命令會向腳本傳入start或者stop,在腳本里可以收到參數$1進行一些判斷,完成一些不同情況下的邏輯處理 。比如:開機執行什么代碼,關機執行什么代碼 。90 表示腳本執行等級 。(通常越小越優先)network與/etc/init.d下的腳本文件名稱保持一致 。3.4 利用rcX.d實現開機自動執行腳本比如:需求是開機之后創建一個文件,并向文件里存放一些數據 。
(1)先在/etc/init.d目錄下創建一個up_demo.sh腳本,編寫腳本代碼:
#!/bin/bashecho $0 $1 >> /home/up_test.txt修改腳本權限:
[root@ecs-c687-ecrs init.d]# chmod 777 /etc/init.d/up_demo.sh[root@ecs-c687-ecrs init.d]# ls up_demo.sh -l-rwxrwxrwx 1 root root 76 Sep 16 14:13 up_demo.sh(2) 在/etc/rc3.d目錄里,創建軟連接 。(因為我的系統啟動級別為3)
[root@ecs-c687-ecrs rc3.d]# ln -s /etc/init.d/up_demo.sh S10up_demo[root@ecs-c687-ecrs rc3.d]# ls -ltotal 0lrwxrwxrwx. 1 root root 20 Feb 14 2022 K50netconsole -> ../init.d/netconsolelrwxrwxrwx. 1 root root 17 Feb 14 2022 K90network -> ../init.d/networklrwxrwxrwx 1 root root 22 Sep 16 14:17 S10up_demo -> /etc/init.d/up_demo.shlrwxrwxrwx 1 root root 19 Sep 15 22:07 S12hostguard -> ../init.d/hostguardlrwxrwxrwx 1 root root 24 Feb 14 2022 S50multi-queue-hw -> ../init.d/multi-queue-hw(3)重啟系統 , 進入到/home目錄下查看文件內容,可以看到開機啟動成功,內容已經寫到up_test.txt文件里了 。
Welcome to Huawei Cloud Service[root@ecs-c687-ecrs ~]# cd /home/[root@ecs-c687-ecrs home]# lslib_run.shup_test.txtvideoworkwork_pcwork.tar.gz[root@ecs-c687-ecrs home]# cat up_test.txt/etc/rc.d/init.d/up_demo.sh start[root@ecs-c687-ecrs home]# 點擊關注,第一時間了解華為云新鮮技術~
【手把手教你從安裝CentOS7.4鏡像開始,搭建IoT視頻監控系統】

推薦閱讀